摘要:操作方法創(chuàng)建數(shù)組類(lèi)數(shù)組將類(lèi)數(shù)組轉(zhuǎn)換真正的數(shù)組修改數(shù)組合并數(shù)組,返回新數(shù)組,原數(shù)組不變數(shù)組轉(zhuǎn)化為字符串以默認(rèn)為逗號(hào)拼接為字符串。
Array操作方法 創(chuàng)建數(shù)組
var arr=[] var arr = new Array() var arr1 = ["1", "2", "3"] var arr2 = ["a", "b", "c"] var arrLike = [{ name: "123", age: "18" }, { name: "abc", age: "12" }] //類(lèi)數(shù)組將類(lèi)數(shù)組轉(zhuǎn)換真正的數(shù)組Array.from(array)
eg:
obj = {"1": "value is 1", length: 2} a = Array.from(obj) //[undefined, "value is 1"]修改數(shù)組
合并數(shù)組,返回新數(shù)組,原數(shù)組不變
Array.prototype.concat(arr1, arr2) //["1", "2", "3", "a", "b", "c"] arr1.concat(arr2) //["1", "2", "3", "a", "b", "c"]
數(shù)組轉(zhuǎn)化為字符串
Array.prototype.join(separator) //以separator(默認(rèn)為逗號(hào))拼接為字符串。 Array.prototype.toString() //把數(shù)組轉(zhuǎn)換為字符串, 數(shù)組中的元素之間用逗號(hào)分隔。
eg:
arr1.join() //"1,2,3" arr1.join("") //"123" arr1.join("/") //"1/2/3" arr1.toString() //"1,2,3"填充
Array.prototype.fill(value,start,end) //value 為填充值 //start 為填充數(shù)組元素起點(diǎn)坐標(biāo) //end 為填充數(shù)組元素終點(diǎn)坐標(biāo)
eg:
arr1.fill(0,1,2) // ["1", 0, "3"]判斷
Array.isArray() Array.isArray(arr1) //true篩選
Array.prototype.filter() Array.prototype.map()
eg:
var words = [ { id: "1", name: "123" }, { id: "2", name: "abc" } ] words.filter(d => d.id === "1") //[{id: "1" , name: "123"}] 返回結(jié)果為true的值 arr1.map(x => x * 2) // [2,4,6] 返回所有項(xiàng)排序
Array.prototype.reverse() //位置顛倒 Array.prototype.sort()
eg:
arr1.reverse() //["3", 2, "1"] arr1.sort() //["1", "2", "3"]遞歸
Array.prototype.reduce()
eg:
const reducer = (accumulation,currentValue)=>{ accumulation + currentValue } arr1.reduce(reducer) // 1+2+3=6 arr1.reduce(reducer,4) //4+1+2+3=10查找
Array.prototype.some(callback) //執(zhí)行callback函數(shù),直到callback返回true var even = function(element){ return element % 2 === 0 } arr1.some(even) //true
Array.prototype.every(callback) //數(shù)組的所有元素是否都通過(guò)callback函數(shù) function even(currentValue){ return currentValue < 5 } arr1.every(even)
Array.prototype.find(callback) //在數(shù)組中返回符合callback第一個(gè)元素的值 function even(value){ return even % 2 === 0 } arr1.find(even) // 2
Array.prototype.findIndex(callback) //返回?cái)?shù)組中滿足callback的第一個(gè)元素的索引。否則返回-1 function even(value){ return value % 2 === 0 } arr1.findIndex(even) // 1
Array.prototype.includes(searchElement) //是否包含seachElement arr1.includes(2) //true arr1.includes(0) //false增刪
pop()
Array.prototype.pop() //刪除數(shù)組的最后一個(gè)元素,并返回改元素的值 arr1.pop() // 3 arr1=[1,2]
push()
Array.prototype.push() //增加元素到數(shù)組末尾,返回增加的元素 arr1.push(4) // 4 ?arr1=[1, 2, 3, 4]
shift()
Array.prototype.shift() //刪除數(shù)組第一個(gè)元素,返回這個(gè)元素值 arr1.shift() // 1 arr1=[2,3]
unshift()
Array.prototype.unshift() //增加元素到數(shù)組開(kāi)頭 ,返回?cái)?shù)組長(zhǎng)度 arr1.unshift(0) //4 arr1=[0,1,2,3]
slice()
Array.prototype.slice(start,end) //返回[start,end]淺拷貝到一個(gè)新數(shù)組,原數(shù)組不會(huì)被修改 arr1.slice(0,2) //[1,2] arr1=[1,2,3]
splice()
Array.prototype.splice() //通過(guò)刪除現(xiàn)有元素或添加新元素來(lái)更改一個(gè)數(shù)組的內(nèi)容,原數(shù)組會(huì)被修改 Array.prototype.slice(replace-index,replace-num,replace-value) //replace-num = 0 => inserts arr1.splice(1,0,0) //arr1=[1,0,2,3] //replace-num !== 0 => replace arr1.splice(1,1,4) //返回被替換的元素 =>2 arr1=[1,4,3]循環(huán)遍歷
map()
Array.prototype.map(callback) arr1.map(val=>val*2) // [2, 4, 6]
forEach()
Array.prototype.forEach(callback) arr1.forEach(elem =>{ console.log(elem) }) // 1 // 2 // 3
entries()
Array.prototype.entries() //返回一個(gè)新的Array Iterator對(duì)象,該對(duì)象包含數(shù)組中每個(gè)索引的鍵/值對(duì) arr1 = ["a", "b", "c"] for( let [index,elem] of (arr1).entries()){ console.log(index,elem) } // 0 "a" // 1 "b" // 2 "c"
keys()
Array.prototype.keys() //返回一個(gè)新的Array迭代器,它包含數(shù)組中每個(gè)索引的鍵 for(let index of(arr1).keys()){ console.log(index) } // 0 // 1 // 2
values()
Array.prototype.values() //返回一個(gè)新的Array迭代對(duì)象,包含數(shù)組每個(gè)索引值 for(let elem of(arr1).values()){ console.log(elem) } // a // b // c
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/100613.html
摘要:數(shù)組去重看了網(wǎng)上很多數(shù)組去重方法,用的比較常見(jiàn)的大概就幾種,今天想自己來(lái)做一個(gè)總結(jié)。還有就是方法返回的數(shù)組也是排序后的數(shù)組,某些情況下可能不符合要求。 JS數(shù)組去重 看了網(wǎng)上很多數(shù)組去重方法,用的比較常見(jiàn)的大概就幾種,今天想自己來(lái)做一個(gè)總結(jié)。部分內(nèi)容參考該博客 1 . 在原數(shù)組上操作(基本方法) 思路:利用循環(huán)嵌套,判斷數(shù)組中每個(gè)元素與其后面的元素是否相等,如果相等,就使用spli...
摘要:性能訪問(wèn)字面量和局部變量的速度是最快的,訪問(wèn)數(shù)組和對(duì)象成員相對(duì)較慢變量標(biāo)識(shí)符解析過(guò)程搜索執(zhí)行環(huán)境的作用域鏈,查找同名標(biāo)識(shí)符。建議將全局變量存儲(chǔ)到局部變量,加快讀寫(xiě)速度。優(yōu)化建議將常用的跨作用域變量存儲(chǔ)到局部變量,然后直接訪問(wèn)局部變量。 缺陷 這本書(shū)是2010年出版的,這本書(shū)談性能是有時(shí)效性的,現(xiàn)在馬上就2018年了,這幾年前端發(fā)展的速度是飛快的,書(shū)里面還有一些內(nèi)容考慮IE6、7、8的東...
摘要:最近在全力整理高性能的文檔,并重新學(xué)習(xí)一遍,放在這里方便大家查看并找到自己需要的知識(shí)點(diǎn)。 最近在全力整理《高性能JavaScript》的文檔,并重新學(xué)習(xí)一遍,放在這里方便大家查看并找到自己需要的知識(shí)點(diǎn)。 前端開(kāi)發(fā)文檔 高性能JavaScript 第1章:加載和執(zhí)行 腳本位置 阻止腳本 無(wú)阻塞的腳本 延遲的腳本 動(dòng)態(tài)腳本元素 XMLHTTPRequest腳本注入 推薦的無(wú)阻塞模式...
摘要:則是把類(lèi)似的異步處理對(duì)象和處理規(guī)則進(jìn)行規(guī)范化,并按照采用統(tǒng)一的接口來(lái)編寫(xiě),而采取規(guī)定方法之外的寫(xiě)法都會(huì)出錯(cuò)。這個(gè)對(duì)象有一個(gè)方法,指定回調(diào)函數(shù),用于在異步操作執(zhí)行完后執(zhí)行回調(diào)函數(shù)處理。到目前為止,已經(jīng)學(xué)習(xí)了創(chuàng)建對(duì)象和用,方法來(lái)注冊(cè)回調(diào)函數(shù)。 Promise 本文從js的異步處理出發(fā),引入Promise的概念,并且介紹Promise對(duì)象以及其API方法。 js里的異步處理 可以參考這篇文章...
摘要:的用法,申明構(gòu)造函數(shù),返回。構(gòu)造函數(shù)可以調(diào)用來(lái)獲取下一個(gè)值,可以構(gòu)造類(lèi)似于隨機(jī)數(shù)生成器。在構(gòu)造器函數(shù)中,可以暫停然后返回當(dāng)前表達(dá)式的值??偨Y(jié)是為了更好的消滅這些不知道,希望對(duì)大家也有所幫助。 1、function*的用法; function*,申明構(gòu)造函數(shù),返回{value:v,done:true_or_false}。構(gòu)造函數(shù)可以調(diào)用next來(lái)獲取下一個(gè)值,可以構(gòu)造類(lèi)似于隨機(jī)數(shù)生成器。...
閱讀 2520·2023-04-25 17:37
閱讀 1203·2021-11-24 10:29
閱讀 3709·2021-09-09 11:57
閱讀 704·2021-08-10 09:41
閱讀 2257·2019-08-30 15:55
閱讀 2822·2019-08-30 15:54
閱讀 1951·2019-08-30 15:53
閱讀 906·2019-08-30 15:43