在 ES9 中,添加了一些新的 Array 原型方法,包括 lastIndexOf()
和 slice()
. 同时还新增加了一个名为 Array.from()
的静态方法。这些新特性使得对于数组的操作更加简单、灵活。
lastIndexOf()
lastIndexOf()
方法返回给定元素最后一次出现时在数组中的索引位置。与 indexOf()
方法不同之处在于,lastIndexOf()
会从数组的末尾开始查找。
语法:
array.lastIndexOf(searchElement[, fromIndex = array.length - 1])
参数解释:
- searchElement:要查找的元素。
- fromIndex: 搜索的起始位置,默认是
array.length - 1
.
示例代码:
const fruits = ['apple', 'banana', 'orange', 'apple']; console.log(fruits.lastIndexOf('apple')); // Output: 3 console.log(fruits.lastIndexOf('grape')); // Output: -1 console.log(fruits.lastIndexOf('apple', 2)); // Output: 0
slice()
slice()
方法返回一个新数组,其中包含从起始到结束位置(不包括结束位置)的原数组的一部分浅拷贝。如果省略 end
参数,则将浅拷贝整个数组。
语法:
array.slice([begin[, end]])
参数解释:
- begin: 从此索引开始提取原数组中的元素(包括
begin
索引),如果该参数为负数,则表示从数组末尾开始算起的元素。 - end: 可选。在此索引处结束提取原数组元素并不包含
end
索引的元素。如果省略,则提取从begin
到数组尾端的所有元素(包括begin
但不包括end
)。
示例代码:
const numbers = [1, 2, 3, 4, 5]; console.log(numbers.slice(2)); // Output: [3, 4, 5] console.log(numbers.slice(-2)); // Output: [4, 5] console.log(numbers.slice(1, 4)); // Output: [2, 3, 4]
Array.from()
Array.from()
方法从一个类似数组或可迭代对象中创建一个新的、浅拷贝的数组实例。
语法:
Array.from(arrayLike[, mapFunction[, thisArg]])
参数解释:
- arrayLike: 要转换为数组的类数组或可迭代对象。
- mapFunction (Optional): 用于对每个元素进行操作的函数。
- thisArg (Optional): 执行回调函数时使用的
this
值。
示例代码:
const str = 'hello world'; console.log(Array.from(str)); // Output: ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] const set = new Set([1, 2, 3, 4]); console.log(Array.from(set, x => x * 2)); // Output: [2, 4, 6, 8]
总结:
ES9 中的这些新特性提供了更多对数组操作功能,可以用来便捷地从数组中获取数据。了解这些新特性将有助于开发者更好的应用它们在快速构建高性能 JavaScript 应用程序的过程中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651b797795b1f8cacd32118b