ES6(ECMAScript 2015)为JavaScript引入了许多新特性,其中就包括一系列新的数组操作方法,这些方法极大地增强了数组的处理能力。以下是一些ES6新增的数组操作方法:
Array.from()
- 将类数组对象(拥有一个
length
属性和若干索引属性的任何对象)或可迭代对象转换成一个真正的数组。 - 示例:
Array.from(document.querySelectorAll('*'))
将NodeList转换为数组。
- 将类数组对象(拥有一个
Array.of()
- 创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
- 示例:
Array.of(1, 2, 3)
等同于[1, 2, 3]
。
find()
- 返回一个数组中满足提供的测试函数的第一个元素的值。否则返回
undefined
。 - 示例:
const array = [5, 12, 8, 130, 44]; const found = array.find(element => element > 10);
- 返回一个数组中满足提供的测试函数的第一个元素的值。否则返回
findIndex()
- 返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
- 示例:
const array = [5, 12, 8, 130, 44]; const index = array.findIndex(element => element > 10);
fill()
- 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
- 示例:
let array = [1, 2, 3, 4]; array.fill(0, 2, 4);
结果为[1, 2, 0, 0]
。
copyWithin()
- 在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。
- 示例:
let array = [1, 2, 3, 4, 5]; array.copyWithin(0, 3, 5);
结果为[4, 5, 3, 4, 5]
。
entries()
- 返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。
- 示例:
for (let [index, elem] of ['a', 'b'].entries()) { console.log(index, elem); }
keys()
- 返回一个包含数组中每个索引的Array Iterator。
- 示例:
for (let index of ['a', 'b'].keys()) { console.log(index); }
values()
- 返回一个新的Array Iterator对象,该对象包含数组每个索引处的值。
- 示例:
for (let elem of ['a', 'b'].values()) { console.log(elem); }
includes()
- 用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回
true
,否则返回false
。 - 示例:
[1, 2, 3].includes(2);
// 返回true
。
- 用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回
这些新方法极大地提高了JavaScript在处理数组时的灵活性和便利性。