- 扩展运算符(Spread Operator): 用于将一个数组转为用逗号分隔的参数序列。例如:
const arr1 = [1, 2, 3]
const arr2 = [...arr1, 4, 5, 6]
console.log(arr2) // [1, 2, 3, 4, 5, 6]
- Array.from():将类似数组的对象(array-like object)和可迭代对象(iterable)转为真正的数组。例如:
const str = "hello"
const arr = Array.from(str)
console.log(arr) // ['h', 'e', 'l', 'l', 'o']
- Array.of():将一组值,转换为数组。例如:
const arr = Array.of(1, 2, 3)
console.log(arr) // [1, 2, 3]
- find() 和 findIndex():用于查找数组中符合条件的元素和其索引,如果没有符合条件的元素,返回 undefined 和 -1。例如:
const arr = [1, 2, 3, 4, 5]
const result = arr.find((item) => item > 2)
console.log(result) // 3
const index = arr.findIndex((item) => item > 2)
console.log(index) // 2
- includes():用于检查数组是否包含某个元素,返回布尔值。例如:
const arr = [1, 2, 3, 4, 5]
console.log(arr.includes(2)) // true
console.log(arr.includes(6)) // false
- fill():用于将数组中的元素全部替换为一个固定的值。例如:
const arr = [1, 2, 3, 4, 5]
arr.fill(0)
console.log(arr) // [0, 0, 0, 0, 0]
- flat() 和 flatMap():用于将嵌套的数组拍平成一维数组。其中 flat() 只会将嵌套的数组拍平一层,需要使用参数指定拍平的层数;flatMap() 则是将数组先执行 map() 方法,再将结果用 flat() 方法拍平。例如:
const arr = [1, [2, [3]]];
const result1 = arr.flat(2);
console.log(result1); // [1, 2, 3]
const result2 = arr.flatMap(item => item \* 2);
console.log(result2); // [2, 4, 6]
- Array.isArray() 用于确定传递的值是否是一个 Array es5。
console.log(Array.isArray([1, 3, 5]))
console.log(Array.isArray(""))
console.log(Array.isArray(new Array(5)))
console.log(Array.isArray(new Int16Array([15, 33])))
// Expected output: false
这些 ES6 的 Array 相关功能在实际项目开发中非常常见,能够帮助我们更加方便地处理数组相关的操作。