摘要:關(guān)于的常用方法和注意點(diǎn)基礎(chǔ)字面量方式創(chuàng)建實(shí)例創(chuàng)建當(dāng)只有一個(gè)參數(shù)的時(shí)候代表創(chuàng)建相同數(shù)量的空項(xiàng)是為了彌補(bǔ)在創(chuàng)建數(shù)組的不足是實(shí)例上的一個(gè)屬性返回?cái)?shù)組元素的個(gè)數(shù)是否是一個(gè)留個(gè)位置增刪改作用用一個(gè)固定值填充一個(gè)數(shù)組中從索引到索引內(nèi)的全部元素參數(shù)
關(guān)于Array的常用方法和注意點(diǎn)
基礎(chǔ)字面量方式創(chuàng)建
let ary1 = [] let ary2 = [1,2,3]
實(shí)例創(chuàng)建 當(dāng)只有一個(gè)參數(shù)的時(shí)候 代表創(chuàng)建相同數(shù)量的空項(xiàng)
let ary1 = new Array() //[] let ary2 = new Array(3) //[, , ,] let ary3 = new Array(1,2,3) //[1, 2, 3]
Array.of()是 ES6 為了彌補(bǔ) new Array() 在創(chuàng)建數(shù)組的不足
let ary1 = Array.of() //[] let ary2 = Array.of(3) //[3] let ary3 = Array.of(1,2,3) //[1, 2, 3]
length 是 Array 實(shí)例上的一個(gè)屬性 返回?cái)?shù)組元素的個(gè)數(shù)
let ary = [1,2,3,4,5] let lengths = ary.length; console.log(lengths) //5
Array.isArray(value) value是否是一個(gè) Array
Array.isArray([1,2,3]) // true Array.isArray({}) //false Array.isArray("foobar") //false Array.isArray(undefined) //falseArray.from()
// 留個(gè)位置增, 刪, 改 fill()
- 作用: 用一個(gè)固定值value填充一個(gè)數(shù)組中從索引start到索引end內(nèi)的全部元素
- 參數(shù): fill(value[, start = 0[, end = this.length]])
- 返回值: 填充后的數(shù)組
- 原有數(shù)組是否改變: 是
fill(value) 默認(rèn): start = 0 end = this.length
let ary = [1,2,3,4] let returnValue = ary.fill(0) console.log(ary) //[0, 0, 0, 0] console.log(returnValue) //[0, 0, 0, 0]
fill(value,start,end) start是開(kāi)始填充的索引 end(不包含end) 結(jié)束填充的索引
let ary = [1,2,3,4] let returnValue = ary.fill(0,1,3) console.log(ary) //[1, 0, 0, 4] console.log(returnValue) //[1, 0, 0, 4]
如果添加的是一個(gè)對(duì)象 則是對(duì)同一個(gè)對(duì)象的引用
let ary = new Array(2) ary.fill({sex:1}) ary[0].sex = 0 console.log(ary) //[{ sex: 1 }, { sex: 1 }]push()
- 作用: 向數(shù)組的末尾添加1個(gè)或多個(gè)新元素
- 參數(shù): push(itemN)
- 返回值: 增加內(nèi)容后數(shù)組的長(zhǎng)度值
- 原有數(shù)組是否改變: 是
push() 向數(shù)組的末尾增加一個(gè)或多個(gè)新元素
let ary = [] ary.push(1) let returnValue = ary.push(2,"3") console.log(ary) //[1, 2, "3"] console.log(returnValue) //3
通過(guò)數(shù)組的索引和利用數(shù)組的length添加新元素
let ary = [1,2] ary[ary.length] = 3 console.log(ary) //[1, 2, 3]pop()
- 作用: 刪除數(shù)組最后一個(gè)元素
- 參數(shù): 無(wú)
- 返回值: 刪除的那項(xiàng) 如果數(shù)組為空 返回 undefined
- 原有數(shù)組是否改變: 是
pop() 刪除數(shù)組最后一個(gè)元素
let ary = [1,2,3,4] let returnValue = ary.pop() console.log(ary) //[1, 2, 3] console.log(returnValue) //4
通過(guò)減少數(shù)組的length刪除最后一個(gè)元素
let ary = [1,2,3] ary.length -= 1 console.log(ary) //[1, 2]unshift()
- 作用: 向數(shù)組的開(kāi)頭增加一個(gè)或多個(gè)新元素
- 參數(shù): unshift(itemN)
- 返回值: 增加內(nèi)容后數(shù)組的長(zhǎng)度值
- 原有數(shù)組是否改變: 是
unshift()向數(shù)組的開(kāi)頭增加一個(gè)或多個(gè)新元素
let ary = [4,5] ary.unshift(3) let returnValue = ary.unshift(1,2) console.log(ary) // [1, 2, 3, 4, 5] console.log(returnValue) // 5shift()
- 作用: 刪除數(shù)組的第一個(gè)元素
- 參數(shù): 無(wú)
- 返回值: 刪除的那項(xiàng) 如果數(shù)組為空 返回 undefined
- 原有數(shù)組是否改變: 是
shift() 刪除數(shù)組的第一個(gè)元素
let ary = [1,2,3,4] let returnValue = ary.shift() console.log(ary) //[2, 3, 4] console.log(returnValue) //1splice()
- 作用: 刪除多個(gè) 或者 添加/替換新元素
- 參數(shù): splice(start[, deleteCount[, itemN])
- 返回值: 把刪除的內(nèi)容當(dāng)做一個(gè)新的數(shù)組返回
- 原有數(shù)組是否改變: 是
let ary = [1,2,3,4,5,6,7]
splice(start) 從索引start開(kāi)始刪除到末尾
let returnValue = ary.splice(3) console.log(ary) //[1, 2, 3] console.log(returnValue) //[4, 5, 6, 7]
splice(start,deleteCount) 從索引 start 開(kāi)始刪除 deleteCount 個(gè)元素
let returnValue = ary.splice(0,4) console.log(ary) //[5, 6, 7] console.log(returnValue) //[1, 2, 3, 4]
splice(start,deleteCount,itemN) 從索引start開(kāi)始,刪除deleteCount個(gè)元素,用itemN(n個(gè))把這個(gè)位置填補(bǔ)上
let returnValue = ary.splice(3,1,"a","b") console.log(ary) //[1, 2, 3, "a", "b", 5, 6, 7] console.log(returnValue) //[4]查詢 slice()
- 作用: 截取數(shù)組
- 參數(shù): slice(n = 0[, m = this.length])
- 返回值: 把找到的內(nèi)容當(dāng)做一個(gè)新的數(shù)組返回
let ary = [1,2,3,4,5,6,7]
slice(n) 從索引n找到數(shù)組末尾 如果 m 被省略 則slice會(huì)截取到數(shù)組末尾
let returnValue = ary.slice(2) console.log(ary) //[1, 2, 3, 4, 5, 6, 7] console.log(returnValue) //[3, 4, 5, 6, 7]
slice(n,m) 從索引n找到索引m處(不包含m這一項(xiàng))
let returnValue = ary.slice(2,6) let returnValue1 = ary.slice(-4,-1) console.log(ary) //[1, 2, 3, 4, 5, 6, 7] console.log(returnValue) //[3, 4, 5, 6] console.log(returnValue1) //[4, 5, 6]indexOf()
- 作用: 查詢數(shù)組里面是否包含某個(gè)元素
- 參數(shù): indexOf(value[,index])
- 返回值: 如果查詢的元素存在 返回當(dāng)前元素的索引; 如果查詢的元素不存在 返回 -1
- 原有數(shù)組是否改變: 否
indexOf(value[,index])查詢數(shù)組里面是否包含某個(gè)元素 index 查詢開(kāi)始的索引 默認(rèn)為0
let ary = [1,2,3,"a","b","c",NaN] let returnValue = ary.indexOf("a") let returnValue1 = ary.indexOf("a",4) let returnValue2 = ary.indexOf(NaN) //無(wú)法找到 NaN console.log(returnValue,"&",returnValue1,"&",returnValue2) //3 "&" -1 "&" -1lastIndexOf()
- 作用: 查詢數(shù)組里面的某個(gè)元素最后出現(xiàn)的位置
- 參數(shù): lastIndexOf(value[,index])
- 返回值: 如果查詢的元素存在 返回當(dāng)前元素的索引; 如果查詢的元素不存在 返回 -1
- 原有數(shù)組是否改變: 否
lastIndexOf(value[,index]) 數(shù)組里面的某個(gè)元素最后出現(xiàn)的位置 從數(shù)組的[,index]開(kāi)始往前查詢 默認(rèn)從最后一個(gè)
let ary = ["a","b","c","b"] let returnValue = ary.lastIndexOf("b") let returnValue1 = ary.lastIndexOf("b",2) //從索引為2的往前查找 所以最后一個(gè)"b" 的索引為 1 let returnValue2 = ary.lastIndexOf("c",-3) console.log(returnValue,"&",returnValue1,"&",returnValue2) //3 "&" 1 "&" -1includes()
- 作用: 判斷一個(gè)數(shù)組是否包含某個(gè)元素
- 參數(shù): includes(value[, start])
- 返回值: 如果包含則返回 true,否則返回false
- 原有數(shù)組是否改變: 否
同indexOf()相比 includes 可以找到 NaN
let ary = [1,2,3,"a","b","c",NaN] let returnValue = ary.includes(NaN) console.log(returnValue) //truefind()
- 作用: 返回?cái)?shù)組中符合函數(shù)規(guī)則的第一個(gè)元素的值
- 參數(shù): find(callback[,thisArg])
- 返回值: 如果有符合的返回這個(gè)元素的值, 沒(méi)有符合的返回 undefined
- 原有數(shù)組是否改變: 否
callback(item, index ,array)可以傳入3個(gè)參數(shù)(按需傳入) item:當(dāng)前元素 index:當(dāng)前元素的索引 array:原數(shù)組
let ary = [1,3,5,66,8,99] let returnValue = ary.find(function(item,index){ return item >= 66 }) console.log(returnValue) //66
thisArg(可選參數(shù)) 指定callback的this值 注: callback 不能使用箭頭函數(shù) 因?yàn)榧^函數(shù)綁定了this
let ary = [1,3,5,66,8,99] ary.find(function(item,index){ console.log(this) //[1,3,5,66,8,99] },ary) // 不能使用箭頭函數(shù) ary.find((item) => { console.log(this) //undefined },ary)findIndex()
- 作用: 返回?cái)?shù)組中符合函數(shù)規(guī)則的第一個(gè)元素的索引
- 參數(shù): findIndex(callback[,thisArg])
- 返回值: 如果有符合的返回這個(gè)元素的索引, 沒(méi)有符合的返回-1
- 原有數(shù)組是否改變: 否
callback(item, index ,array)可以傳入3個(gè)參數(shù)(按需傳入) item:當(dāng)前元素 index:當(dāng)前元素的索引 array:原數(shù)組
let ary = [1,3,5,66,8,99] let returnValue = ary.findIndex(function(item,index){ return item >= 66 }) console.log(returnValue) //3
thisArg(可選參數(shù)) 指定callback的this值 注: callback 不能使用箭頭函數(shù) 因?yàn)榧^函數(shù)綁定了this
filter()- 作用: 過(guò)濾數(shù)組中符合函數(shù)規(guī)則的元素
- 參數(shù): filter(callback[,thisArg])
- 返回值: 把符合規(guī)則的元素組成一個(gè)新的數(shù)組返回,如果沒(méi)有則返回空數(shù)組
- 原有數(shù)組是否改變: 否
callback(item, index ,array)可以傳入3個(gè)參數(shù)(按需傳入) item:當(dāng)前元素 index:當(dāng)前元素的索引 array:原數(shù)組
let ary = [1,3,5,66,8,99] let returnValue = ary.filter((item) => { return item > 5 }) console.log(returnValue) //[66, 8, 99]
thisArg(可選參數(shù)) 指定callback的this值 注: callback 不能使用箭頭函數(shù) 因?yàn)榧^函數(shù)綁定了this
遍歷 forEach()- 作用: 對(duì)數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù)
- 參數(shù): forEach(callback[, thisArg])
- 返回值: undefined
callback(item, index ,array)可以傳入3個(gè)參數(shù)(按需傳入) item:當(dāng)前元素 index:當(dāng)前元素的索引 array:原數(shù)組
let ary = [1,2,3,4,5] let ary1 = [] ary.forEach(function(item){ ary1.push(item + "a") }) console.log(ary1) //["1a", "2a", "3a", "4a", "5a"]
thisArg(可選參數(shù)) 指定callback的this值 注: callback 不能使用箭頭函數(shù) 因?yàn)榧^函數(shù)綁定了this
ary.forEach(function(item){ console.log(this) //[1, 2, 3, 4, 5] },ary) //使用箭頭函數(shù)將獲取不到this ary.forEach(() => { console.log(this) //undefined },ary1)map()
- 作用: 對(duì)數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù)并把執(zhí)行后的結(jié)果組成一個(gè)新的數(shù)組返回
- 參數(shù): map(callback[, thisArg])
- 返回值: 執(zhí)行函數(shù)后的新數(shù)組
callback(item, index ,array)可以傳入3個(gè)參數(shù)(按需傳入) item:當(dāng)前元素 index:當(dāng)前元素的索引 array:原數(shù)組
forEach并不會(huì)返回結(jié)果 而現(xiàn)在需要對(duì)結(jié)果進(jìn)行處理后返回
let ary = [1,2,3,4,5] let returnValue = ary.map(function(item){ return item + "a" }) console.log(returnValue) //["1a", "2a", "3a", "4a", "5a"]entries(), keys(), values()
entries() keys() values() 都返回一個(gè)遍歷器對(duì)象 可以用 for...of 遍歷 也可以用遍歷器對(duì)象的 next() 調(diào)用
entries()是對(duì)鍵值對(duì)的遍歷 for...of循環(huán)數(shù)組是不可以取到索引的 可通過(guò)entries方法取到索引
let ary = ["a","b","v"] let ary1 = [] for(let [index, item] of ary.entries()){ ary.push({[index] : item}) } console.log(ary1) //[{ "0": "a" }, { "1": "b" }, { "2": "v" }]
values() 是對(duì)鍵值的遍歷
let ary = ["a","b","v"] let ary1 = [] for(let item of ary.values()){ ary.push(item) } console.log(ary1) //[a, b, v]
keys() 是對(duì)鍵名的遍歷
let ary = ["a","b","v"] let ary1 = [] for(let index of ary.keys()){ ary.push(index) } console.log(ary1) //[0, 1, 2]拼接 擴(kuò)展運(yùn)算符
... 留個(gè)位置
[...["a","b","c"], ...["d","e","f"]] // ["a", "b", "c", "d", "e", "f"]concat()
- 作用: 數(shù)組的拼接
- 參數(shù): concat([, ary])
- 返回值: 把拼接后的數(shù)組當(dāng)做一個(gè)新的數(shù)組返回
let ary = [1,2,3,4]
concat() 沒(méi)有參數(shù)的時(shí)候?qū)崿F(xiàn)數(shù)組的克隆
let returnValue = ary.concat() console.log(ary) //[1, 2, 3, 4] console.log(returnValue) //[1, 2, 3, 4]
concat(ary1) 實(shí)現(xiàn)兩個(gè)數(shù)據(jù)的拼接
let ary1 = [5,6,7] let returnValue = ary.concat(ary1) console.log(ary) //[1, 2, 3, 4] console.log(returnValue) //[1, 2, 3, 4, 5, 6, 7]join()
- 作用: 以指定的分隔符把數(shù)組轉(zhuǎn)換為字符串
- 參數(shù): 分割的字符 如:,
- 返回值: 轉(zhuǎn)換后的字符串
join() 以指定的分隔符把數(shù)組轉(zhuǎn)換為字符串 默認(rèn)是 ,
let ary = ["Chrome","IE","Firefox"] let returnValue = ary.join(",") console.log(returnValue) //"Chrome,IE,Firefox"排序 reverse()
- 作用: 反轉(zhuǎn)數(shù)組
- 參數(shù): 無(wú)
- 返回值: 反轉(zhuǎn)后的數(shù)組
- 原有數(shù)組是否改變: 是
let ary = [0,1,2,3,4,5,6] let returnValue = ary.reverse() console.log(ary) //[6, 5, 4, 3, 2, 1, 0] console.log(returnValue) //[6, 5, 4, 3, 2, 1, 0]sort()
- 作用: 對(duì)數(shù)組的元素進(jìn)行排序
- 參數(shù): sort([, callback])
- 返回值: 排序后的數(shù)組
- 原有數(shù)組是否改變: 是
let ary = [2,32,4,23,62,99]
a - b 正序
let returnValue = ary.sort(function(a,b){ return a - b }) console.log(returnValue) //[2, 4, 23, 32, 62, 99]
b - a 倒序
let returnValue = ary.sort(function(a,b){ return b - a }) console.log(returnValue) //[ 99, 62, 32, 23, 4, 2 ]
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/95082.html
摘要:語(yǔ)法數(shù)組刪除數(shù)組的最后一項(xiàng)語(yǔ)法數(shù)組在數(shù)組的最末添加一項(xiàng)語(yǔ)法數(shù)組刪除數(shù)組的首項(xiàng)語(yǔ)法數(shù)組在數(shù)組的首部添加一項(xiàng)案例分析 1:數(shù)組的指針操作: 語(yǔ)法:current(數(shù)組) 當(dāng)前指針指向的單元值(默認(rèn)是第零個(gè))語(yǔ)法 next(數(shù)組) 當(dāng)前指針往下移動(dòng)一幀語(yǔ)法 prev(數(shù)組) 當(dāng)前指針往前移動(dòng)一個(gè)指針語(yǔ)法 end(array) 將當(dāng)前指針移動(dòng)到最后一項(xiàng)語(yǔ)法 ...
摘要:如果沒(méi)有符合條件的成員,則返回返回查找到的該成員該方法與類(lèi)似,對(duì)數(shù)組中的成員依次執(zhí)行函數(shù),直至找到第一個(gè)返回值為的成員,然后返回該成員的索引。 摘要 最近學(xué)習(xí)了JS數(shù)組的基礎(chǔ)知識(shí),在這里呢總結(jié)一下,包括js數(shù)組的屬性與方法,js數(shù)組常常遇到的一些問(wèn)題,小編通過(guò)查閱一些網(wǎng)上的知識(shí),把關(guān)于數(shù)組的東西進(jìn)行了羅列,希望各位大神多多指點(diǎn)! 數(shù)組屬性 lengthlength屬性表示數(shù)組的長(zhǎng)度,即...
摘要:如果沒(méi)有符合條件的成員,則返回返回查找到的該成員該方法與類(lèi)似,對(duì)數(shù)組中的成員依次執(zhí)行函數(shù),直至找到第一個(gè)返回值為的成員,然后返回該成員的索引。 摘要 最近學(xué)習(xí)了JS數(shù)組的基礎(chǔ)知識(shí),在這里呢總結(jié)一下,包括js數(shù)組的屬性與方法,js數(shù)組常常遇到的一些問(wèn)題,小編通過(guò)查閱一些網(wǎng)上的知識(shí),把關(guān)于數(shù)組的東西進(jìn)行了羅列,希望各位大神多多指點(diǎn)! 數(shù)組屬性 lengthlength屬性表示數(shù)組的長(zhǎng)度,即...
摘要:數(shù)組元素甚至可以是對(duì)象或其它數(shù)組。它執(zhí)行的是淺拷貝,這意味著如果數(shù)組元素是對(duì)象,兩個(gè)數(shù)組都指向相同的對(duì)象,對(duì)新數(shù)組中的對(duì)象修改,會(huì)在舊的數(shù)組的相同對(duì)象中反應(yīng)出來(lái)。 JS中的數(shù)組是弱類(lèi)型的,數(shù)組中可以含有不同類(lèi)型的元素。數(shù)組元素甚至可以是對(duì)象或其它數(shù)組。JS引擎一般會(huì)優(yōu)化數(shù)組,按索引訪問(wèn)數(shù)組常常比訪問(wèn)一般對(duì)象屬性明顯迅速。數(shù)組長(zhǎng)度范圍 from 0 to 4,294,967,295(2^...
摘要:類(lèi)型化數(shù)組也是中新引入的。用一句話解釋類(lèi)型化數(shù)組就是它是操作二進(jìn)制數(shù)據(jù)的接口。類(lèi)型化數(shù)組類(lèi)型化數(shù)組的應(yīng)用二進(jìn)制數(shù)據(jù)的接口主要應(yīng)用于文件,在中涉及文件處理的幾乎都可以應(yīng)用,主要是,,。 類(lèi)型化數(shù)組(Typed Array)也是HTML5中新引入的API。用一句話解釋類(lèi)型化數(shù)組就是:它是JS操作二進(jìn)制數(shù)據(jù)的接口。 眾所周知,直接操作二進(jìn)制數(shù)據(jù)可以使程序更為高效, 盡管JS對(duì)常規(guī)數(shù)組做了很多...
閱讀 1860·2021-09-23 11:21
閱讀 707·2019-08-30 15:55
閱讀 844·2019-08-29 15:40
閱讀 541·2019-08-29 12:56
閱讀 3175·2019-08-26 12:00
閱讀 3567·2019-08-23 18:24
閱讀 2259·2019-08-23 17:08
閱讀 1649·2019-08-23 17:03