关于ES6中数组新增的方法详解
ES6引入了很多新的语法和特性,其中包含了很多新的数组方法,这些方法大大增强了JavaScript处理数组的能力,本篇文章将详细介绍ES6中数组新增的方法。
本文将介绍以下14种方法:
- Array.from
- Array.of
- Array.prototype.copyWithin
- Array.prototype.fill
- Array.prototype.find
- Array.prototype.findIndex
- Array.prototype.entries
- Array.prototype.keys
- Array.prototype.values
- Array.prototype.includes
- Array.prototype.flat
- Array.prototype.flatMap
- Array.prototype.forEach
- Array.prototype.map
1. Array.from
Array.from()
方法将类数组对象和可迭代对象转换为数组,返回转换后的新数组。
示例:
let str = 'hello';
let arr = Array.from(str);
console.log(arr); // ['h', 'e', 'l', 'l', 'o']
2. Array.of
Array.of()
方法用于创建数组,与直接使用数组字面量有两个区别:1. 可以创建单个元素的数组;2. 不会忽略空位。
示例:
let arr1 = Array.of(3);
console.log(arr1); // [3]
let arr2 = Array.of(1, null, 'hello');
console.log(arr2); // [1, null, 'hello']
3. Array.prototype.copyWithin
copyWithin()
方法将数组中指定范围的元素复制到另一个指定索引处的位置。会修改原数组。
示例:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.copyWithin(1, 3);
console.log(arr); // ['a', 'd', 'e', 'd', 'e']
4. Array.prototype.fill
fill()
方法用指定的值填充数组。
示例:
let arr = new Array(3).fill(0);
console.log(arr); // [0, 0, 0]
5. Array.prototype.find
find()
方法返回数组中第一个满足条件的元素,找不到返回undefined。
示例:
let arr = [1, 2, 3, 4, 5];
let result = arr.find(item => item > 3);
console.log(result); // 4
6. Array.prototype.findIndex
findIndex()
方法返回数组中第一个满足条件的元素的索引,找不到返回-1。
示例:
let arr = [1, 2, 3, 4, 5];
let index = arr.findIndex(item => item > 3);
console.log(index); // 3
7. Array.prototype.entries
entries()
方法返回一个迭代器对象,可以用于遍历数组中的[key, value]对。
示例:
let arr = ['a', 'b', 'c'];
let iterator = arr.entries();
console.log(iterator.next().value); // [0, 'a']
console.log(iterator.next().value); // [1, 'b']
console.log(iterator.next().value); // [2, 'c']
8. Array.prototype.keys
keys()
方法返回一个迭代器对象,可以用于遍历数组中的键。
示例:
let arr = ['a', 'b', 'c'];
let iterator = arr.keys();
console.log(iterator.next().value); // 0
console.log(iterator.next().value); // 1
console.log(iterator.next().value); // 2
9. Array.prototype.values
values()
方法返回一个迭代器对象,可以用于遍历数组中的值。
示例:
let arr = ['a', 'b', 'c'];
let iterator = arr.values();
console.log(iterator.next().value); // 'a'
console.log(iterator.next().value); // 'b'
console.log(iterator.next().value); // 'c'
10. Array.prototype.includes
includes()
方法用于判断数组是否包含指定的值,返回布尔值。
示例:
let arr = [1, 2, 3, 4, 5];
console.log(arr.includes(2)); // true
console.log(arr.includes(6)); // false
11. Array.prototype.flat
flat()
方法将多维数组拍平成一维数组。
示例:
let arr1 = [1, [2, [3, 4]]];
console.log(arr1.flat()); // [1, 2, [3, 4]]
let arr2 = [1, [2, [3, 4]]];
console.log(arr2.flat(2)); // [1, 2, 3, 4]
12. Array.prototype.flatMap
flatMap()
方法类似于map()
方法,不同的是,先对数组中每个元素执行映射函数,然后再将返回的一维数组拍平成新的数组。
示例:
let arr = [1, 2, 3];
let result = arr.flatMap(item => [item, item * 2]);
console.log(result); // [1, 2, 2, 4, 3, 6]
13. Array.prototype.forEach
forEach()
方法对数组中的每个元素执行一次给定的函数,不返回值。
示例:
let arr = [1, 2, 3];
arr.forEach(item => console.log(item));
14. Array.prototype.Map
map()
方法对数组中的每个元素执行一次给定的函数,并返回新的数组。
示例:
let arr = [1, 2, 3];
let result = arr.map(item => item * 2);
console.log(result); // [2, 4, 6]
以上14种方法是ES6中新增的数组方法,这些方法可以更加方便地处理数组,提高开发效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于ES6中数组新增的方法详解 - Python技术站