ES6 中新增了许多数组 API,让我们在处理数组时更加灵活和高效。本文将详细介绍这些 API 的使用方法,并给出实用的示例代码。
1. Array.from()
Array.from() 方法可以将类似数组的对象和可迭代对象(比如 Set 和 Map)转化为真正的数组。它的语法如下:
Array.from(arrayLike[, mapFn[, thisArg]])
其中,arrayLike 是要转化的对象,mapFn 是一个可选的映射函数,thisArg 是可选的映射函数的 this 值。
使用示例:
let str = 'hello'; let arr = Array.from(str); console.log(arr); // ['h', 'e', 'l', 'l', 'o'] let set = new Set([1, 2, 3]); let arr2 = Array.from(set, x => x * x); console.log(arr2); // [1, 4, 9]
2. Array.of()
Array.of() 方法可以创建一个包含任意数量参数的新数组。它的语法如下:
Array.of(element0[, element1[, ...[, elementN]]])
使用示例:
let arr = Array.of(1, 2, 3); console.log(arr); // [1, 2, 3]
3. Array.prototype.copyWithin()
Array.prototype.copyWithin() 方法可以将数组中的一部分元素复制到另一部分,并覆盖原来的元素。它的语法如下:
arr.copyWithin(target[, start[, end]])
其中,target 是开始复制的位置,start 和 end 分别是开始和结束复制的位置。
使用示例:
let arr = [1, 2, 3, 4]; arr.copyWithin(1, 2, 3); console.log(arr); // [1, 3, 3, 4]
4. Array.prototype.fill()
Array.prototype.fill() 方法可以将数组中的所有元素替换为指定的值。它的语法如下:
arr.fill(value[, start[, end]])
其中,value 是要替换的值,start 和 end 分别是开始和结束替换的位置。
使用示例:
let arr = [1, 2, 3, 4]; arr.fill(0, 2); console.log(arr); // [1, 2, 0, 0]
5. Array.prototype.find()
Array.prototype.find() 方法可以查找数组中满足条件的第一个元素,并返回该元素。它的语法如下:
arr.find(callback[, thisArg])
其中,callback 是用于测试每个元素的函数,thisArg 是可选的 callback 函数的 this 值。
使用示例:
let arr = [1, 2, 3, 4]; let result = arr.find(x => x > 2); console.log(result); // 3
6. Array.prototype.findIndex()
Array.prototype.findIndex() 方法可以查找数组中满足条件的第一个元素的索引,并返回该索引。它的语法如下:
arr.findIndex(callback[, thisArg])
其中,callback 是用于测试每个元素的函数,thisArg 是可选的 callback 函数的 this 值。
使用示例:
let arr = [1, 2, 3, 4]; let index = arr.findIndex(x => x > 2); console.log(index); // 2
7. Array.prototype.entries()
Array.prototype.entries() 方法返回一个迭代器对象,用于遍历数组中的键值对。它的语法如下:
arr.entries()
使用示例:
let arr = ['a', 'b', 'c']; let iterator = arr.entries(); for (let [index, value] of iterator) { console.log(index, value); } // 0 'a' // 1 'b' // 2 'c'
8. Array.prototype.keys()
Array.prototype.keys() 方法返回一个迭代器对象,用于遍历数组中的键名。它的语法如下:
arr.keys()
使用示例:
let arr = ['a', 'b', 'c']; let iterator = arr.keys(); for (let index of iterator) { console.log(index); } // 0 // 1 // 2
9. Array.prototype.values()
Array.prototype.values() 方法返回一个迭代器对象,用于遍历数组中的键值。它的语法如下:
arr.values()
使用示例:
let arr = ['a', 'b', 'c']; let iterator = arr.values(); for (let value of iterator) { console.log(value); } // 'a' // 'b' // 'c'
10. Array.prototype.includes()
Array.prototype.includes() 方法可以判断数组中是否包含指定的值。它的语法如下:
arr.includes(value[, fromIndex])
其中,value 是要查找的值,fromIndex 是可选的开始查找的位置。
使用示例:
let arr = [1, 2, 3, 4]; console.log(arr.includes(2)); // true console.log(arr.includes(5)); // false
结语
ES6 中新增的数组 API 大大增强了数组操作的能力,让我们在开发中更加灵活和高效。希望本文能对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6785b2b25638eae9600fa513