// 1.创建数组
let arr1 = Array.of(1,2,'xu') // [1, 2, "xu"]
let arr2 = new Array(4) // [empty × 4]
let arr3 = [2,3,4] // [2, 3, 4]
let arr4 = Array.of() // []
let arr5 = Array.of(...['a','b','c']) // ["a", "b", "c"]
// 2.参数为类数组对象或者可迭代对象
let arr6 = Array.from([1,2,'s']) // [1,2,"s"]
let arr7 = Array.from([1,,2]) // [1,undefined,2]
let arr8 = Array.from([1,2,3],function(n){
return n*2+'x'
}) // ["2x","4x","6x"]
// 2.1 参数为类数组对象
let arrObj = {
0:1,
1:'a',
length:2
}
let arr9 = Array.from(arrObj) // [1,"a"]
let arrObj2 = {
0:1,
1:'a',
}
let arr10 = Array.from(arrObj2) // []
let arrObj3 = {
'0':1,
'1':'a',
'3':2,
length:5
}
let arr11 = Array.from(arrObj3) // [1, "a", undefined, 2, undefined, undefined]
let arrObj4 = {
'0':1,
'1':'a',
'3':2,
length:2
}
let arr12 = Array.from(arrObj4) // [1, "a"]
// 2.2 可迭代对象
let map = new Map()
map.set('name','xudanfeng')
map.set('age','26')
let arr13 = Array.from(map) // [["name","xudanfeng"],["age","26"]]
let set = new Set([1,2,2,4,2,5])
let arr14 = Array.from(set) // [1,2,4,5]
2.1 查找函数 find(fn):查找数组中符合条件的元素,若多个符合条件的元素,则返回第一个。
let arr = Array.of(1,2,3,4,5)
arr.find(item => item > 3) // 4
2.2 查找函数 findIndex(fn):查找数组中符合条件的元素索引,若多个符合条件的元素,则返回第一个 元素索引。
let arr = Array.of(1,2,3,4,5)
arr.findIndex(item => item > 3) // 3
2.3 填充函数 fill(value,startIndex,endIndex):将一定范围索引的数组元素内容填充为单个指定的值。startIndex,endIndex选填参数,默认数组起始,数组结尾。
let arr = Array.of(1,2,3,4,5)
arr.fill(6,1,3) // [1,6,6,6,5]
let arr1 = Array.of(1,2,3,4,5)
arr1.fill(6,1) // [1,6,6,6,6]
2.4 填充函数 copyWithin(index,sIndex,eIndex):将一定范围索引的数组元素内容填充为单个指定的值。
let arr = Array.of(1, 2, 3, 4)
// 起始索引为0,被用来覆盖数据索引下标[3,4)对应元素4
arr.copyWithin(0, 3, 4) // [4,2,3,4]
let arr1 = Array.of(1, 2, 3, 4)
// 起始索引为1,被用来覆盖数据索引下标[2,4)对应元素2,3
arr1.copyWithin(1, 2, 4) // [1,3,4,4]
let arr2 = Array.of(1, 2, 3, 4, 5)
arr2.copyWithin(1, 2, 5) // [1,3,4,5,5]
console.log(arr, arr1, arr2)
2.5 遍历函数 entries():遍历键值对
let arr = Array.of(1, 2, 3, 4)
let keyValueArr = arr.entries()
console.log([...keyValueArr]) // [[0,1],[1,2],[2,3],[3,4]]
2.6 遍历函数 keys():遍历键名
let arr = Array.of(1, 2, 3, 4)
let keyArr = arr.keys()
console.log([...keyArr]) // [0,1,2,3]
2.7 遍历函数 values():遍历键值
let arr = Array.of(1, 2, 3, 4)
let valueArr = arr.values()
console.log([...valueArr]) // [1,2,3,4]
2.8 包含函数 includes(v,index):数组是否包含指定值,v:指定值,index:从数组索引index起开始向后搜索
let arr = Array.of(1, 2, 3, 4)
arr.includes(1) // true
arr.includes(1,2) // false
arr.includes(3,1) // true
2.9 嵌套数组转一维数组 flat(n):
console.log([1 ,[2, 3]].flat()); // [1, 2, 3]
// 指定转换的嵌套层数
console.log([1, [2, [3, [4, 5, [6]]]]].flat(2)) // [1, 2, 3, [4, 5,[6]]]
console.log([1, [2, [3, [4, 5, [6]]]]].flat(3)) // [1, 2, 3, 4, 5,[6]]
// 不管嵌套多少层
console.log([1, [2, [3, [4, 5]]]].flat(Infinity)); // [1, 2, 3, 4, 5]
// 自动跳过空位
console.log([1, [2, , 3]].flat());<p> // [1, 2, 3]