#數(shù)組創(chuàng)建
let arr1 = [1, 2, 3]; // [1, 2, 3]
let arr2 = Array(); // []
let arr3 = Array(2); // [undefined, undefined]
let arr4 = Array(1,2,3); // [1, 2, 3]
#.將一個(gè)對象轉(zhuǎn)換為數(shù)組
/*
* 第一個(gè)參數(shù):被轉(zhuǎn)化的數(shù)組
* 第二個(gè)參數(shù):對每個(gè)元素進(jìn)行處理院刁,將處理后的結(jié)果返回的數(shù)組(類型map)
* 第三個(gè)參數(shù):用來綁定this
*/
// 當(dāng)參數(shù)為一個(gè)Object類型時(shí),需要有l(wèi)ength屬性,用來指定數(shù)組長度屯仗,默認(rèn)為0
Array.from({ 2: '2', a: 'a', 0: '0', length: 4}) // ['0', undefined, 2: undefined]
Array.from({ 2: '2', a: 'a', 0: '0', length: 2}) // ['0', undefined]
Array.from({ 2: '2', a: 'a', 0: '0', length: 2}, v => v || '') // ['0', '']
Array.from('hello') // ['h', 'e', 'l', 'l', 'o']
#.判斷數(shù)組是否是一個(gè)Array類型
Array.isArray([1,2,3]) // true
Array.isArray({a: 'a'}) // false
Array.isArray('hello') // false
Array.isArray(Array(3)) // true
Array.isArray(null) // false
#.Array.of; (把所有的參數(shù)放到一個(gè)數(shù)組中返回)
let arr1 = Array.of(1, 2, 3); // [1, 2, 3]
let arr1 = Array.of(); // []
#, copyWithin: 從數(shù)組的指定位置拷貝元素到另一個(gè)指定位置
/*
* 第一個(gè)參數(shù):復(fù)制的目標(biāo)位置
* 第二個(gè)參數(shù):復(fù)制的開始位置(閉區(qū)間)
* 第三個(gè)參數(shù):復(fù)制的結(jié)束位置(開區(qū)間)
*/
let arr = [1,2,3,4,5,6]
arr.copyWithin(4, 1, 3) // [1,2,3,4,2,3]
#, entries: 返回一個(gè)數(shù)組的迭代對象(Iterator)
let arr = [1,2,3]
let it = arr.entries()
console.log(it.next()) // {value: [0,1], done: false}
console.log(it.next()) // {value: [1,2], done: false}
console.log(it.next()) // {value: [2,3], done: false}
console.log(it.next()) // {value: undefined, done: true}
#, every: 對數(shù)組中所有的元素進(jìn)行檢查梅垄,返回布爾值.
#,some: 和every類似,every是需要所有元素都滿足條件圣勒,而some只要有滿足的就會返回true
every: 對數(shù)組中所有的元素進(jìn)行檢查盆色,返回布爾值
some: 和every類似,every是需要所有元素都滿足條件胰耗,而some只要有滿足的就會返回true
let arr = [1,2,3]
arr.every(v => { console.log(v); return v < 10}) // 1 2 3 true
arr.every(v => { console.log(v); return v < 2}) // 1 2 false
arr.some(v => { console.log(v); return v < 2}) // 1 true
#, fill: 用一個(gè)固定值替換數(shù)組中的元素
/*
* 第一個(gè)參數(shù):填充的值
* 第二個(gè)參數(shù):填充的開始位置(閉區(qū)間)
* 第三個(gè)參數(shù):填充的結(jié)束位置(開區(qū)間)
*/
let arr = [1,2,3,4,5,6]
arr.fill(0, 1, 3) // [1,0,0,4,5,6]
Array(2).fill(0) // [0,0]
#, filter: 創(chuàng)建一個(gè)新數(shù)組限次,返回原數(shù)組中滿足條件的所有元素
let arr1 = [
{ age: 10, name: '10'},
{ age: 23, name: '23'},
{ age: 16, name: '16'},
{ age: 11, name: '11'},
{ age: 37, name: '37'}
]
arr1.filter(v => v.age < 18)
// 輸出
/* [
* { age: 10, name: '10'},
* { age: 16, name: '16'},
* { age: 11, name: '11'}
* ]
*/
#, find: 返回?cái)?shù)組中第一個(gè)滿足條件的元素。findIndex: 返回?cái)?shù)組中第一個(gè)滿足條件的元素的索引值
let arr1 = [
{ age: 10, name: '10'},
{ age: 23, name: '23'},
{ age: 16, name: '16'},
{ age: 11, name: '11'},
{ age: 37, name: '37'}
]
arr1.find(v => v.age > 18) // { age: 23, name: '23'}
#, flat: 創(chuàng)建一個(gè)新數(shù)組柴灯,扁平化原嵌套數(shù)組卖漫,參數(shù)為扁平的層數(shù),該方法會移除空項(xiàng)
let arr1 = [1, , [2, [3, , [4]]]]
arr.flat() // [1,2,[3, , [4]]]
arr.flat(2) // [1,2,3,[4]]
arr.flat(3) // [1,2,3,4]
arr.toString() // '1,,2,3,,4'
#,flatMap: 和 map 相近弛槐,但是會將返回結(jié)果壓平一層
let arr1 = [1,2,3]
arr1.map(v => [v * 2]) // [[2], [4], [6]]
arr1.flatMap(v => [v * 2]) // [2, 4, 6]
#,forEach: 遍歷數(shù)組中的每一個(gè)元素
let arr1 = [1,2,3]
arr1.forEach(v=>{console.log(v)}) // 1,2,3
#,includes: 判斷一個(gè)數(shù)組中是否包含一個(gè)元素
let obj = {id: 2, valu
let arr = [
obj,
'hello',
{id: 1, value: '1'}
]
arr.includes({id: 1, value: '1'}) // false
arr.includes(obj) // true
arr.includes('hello') // true
#,indexOf:找到滿足條件元素的索引值懊亡,從第一個(gè)參數(shù)開始尋找依啰。lastIndexOf:尋找順序與indexOf相反乎串。findIndex:查找元素的位置索引,和indexOf不同的是findIndex可以查找對象速警。而indexOf只可以查找數(shù)組
let arr1 = ['a', 'b', 'c','b']
arr1.indexOf('b') // 1
arr1.lastIndexOf('b') // 3
#,join:將元素連接成一個(gè)字符串叹誉,并用分隔符分割(第一個(gè)參數(shù))
let arr = [1, 2,3,4,5]
arr.join(' , ') // '1,2,3,4,5'
#,map: 返回一個(gè)新數(shù)組,數(shù)組中的元素為原數(shù)組經(jīng)過處理后的值
let arr1 = [{id:1}, {id:2}, {id: 3}]
arr1.map(v => v.id) // [1, 2, 3]
#,pop: 刪除原數(shù)組的最后一個(gè)元素
let arr = [1,2,3]
arr.pop() // [1,2]
#,push: 在原數(shù)組的末尾添加一個(gè)元素
let arr = [1,2,3]
arr.push(4) // [1,2,3,4]
#,shift: 刪除原數(shù)組的第一個(gè)元素
let arr = [1,2,3,4]
arr.shift() // [2,3,4]
#,unshift: 在原數(shù)組開頭添加一個(gè)元素
let arr = [1,2,3,4]
arr.unshift(0) // [0,1,2,3,4]
#闷旧,reverse: 顛倒原數(shù)組中元素的順序
let arr = [1,2,3]
arr.reverse() // [3,2,1]