ES6 引入的新数组方法列表
ECMAScript 2015,也称为ES6,是对Javascript的增强修订。通过此更新,引入了一些功能,并列出了与数组操作相关的方法:
JavaScript find() 方法: 此方法返回数组中符合条件的第一个元素。更具语法性地说,它根据提供的作为参数的测试函数返回数组的一个元素。
- 如果没有找到符合给定条件的元素,则返回 undefined 。
- 如果有多个元素满足给定条件,则返回 第一个出现的元素 。
示例: 我们提供一个简单的函数,使用箭头语法在find方法中检查当前元素是否等于5,并将返回满足该条件的元素。
JavaScript代码
const array = [6, 8, 78, 21, 5];
const returnedElement = array.find((element) => {
return element == 5;
});
console.log(returnedElement);
输出:
**5**
JavaScript findIndex() 方法 : 它与上面描述的find方法类似,区别在于它返回元素的索引而不是实际值,并且如果未找到该元素则返回-1。从语法上讲,它返回回调函数产生truthy值的元素的索引。
示例:
JavaScript
const array = [6, 8, 78, 21, 5];
const returnedIndex = array.findIndex((element) => {
return element == 5;
});
console.log(returnedIndex);
输出:
4
JavaScript of() 方法 : 这个方法根据提供的数据创建一个新的数组实例。它与元素的数量和类型无关。
语法:
Array.of(element0, element1, element2,......elementn)
示例: 在第一个示例中,我们只传递了一个整数,因此它将创建一个只有一个元素的数组,这是它与Array构造函数不同的特性之一。在第二个示例中,我们传递了4个值来创建一个数组。
JavaScript
const arr1 = Array.of(2);
const arr2 = Array.of(7, 2, 3, 4);
console.log(arr1);
console.log(arr2);
输出:
[2]
(4) [7, 2, 3, 4]
JavaScript fill()方法 : 正如其名,它用于用单个提供的值填充数组或特定部分。在一些填充修改之后,它返回原始数组。
语法:
fill(value, start, end)
- 您可以省略起始和结束参数,它们的默认值分别是 0和数组长度 。
- 它不会复制数组,而是修改原始数组并返回。
示例: 我们在开始创建了一个数组。第一次调用fill方法返回的数组从索引3到5(不包括)填充了值为1的元素。第二次调用返回从索引2到最后一个索引都填充了值为7的数组。第三次调用返回了一个到处填充了值为3的数组。
Javascript
const arr = [8, 3, 11, 9, 6];
console.log(arr.fill(1, 3, 5));
console.log(arr.fill(7, 2));
console.log(arr.fill(3));
输出:
(5) [8, 3, 11, 1, 1]
(5) [8, 3, 7, 7, 7]
(5) [3, 3, 3, 3, 3]
JavaScript的from()方法 : 它根据提供的可迭代对象(如set、map、nodelist、string等)创建一个浅复制的数组实例。
示例: 在第一次调用from方法时,我们传递了一个set,并返回了一个数组实例;在第二次调用时,传递了一个字符串。
JavaScript
const set = new Set(['foo', 'bar', 'baz', 'foo']);
console.log(Array.from(set));
const str = 'string';
console.log(Array.from(str));
输出:
(3) ['foo', 'bar', 'baz']
(6) ['s', 't', 'r', 'i', 'n', 'g']
JavaScript values() 方法 : 这个方法返回提供的数组的可迭代对象的值。
示例: 在我们声明了数组后,调用values方法返回了该数组的可迭代对象的值。
JavaScript
const arr = ['a', 'b', 'c', 'd'];
const iterator = arr.values();
for (const value of iterator) {
console.log(value);
}
输出结果:
a
b
c
d
JavaScript keys() 方法: 它返回一个迭代对象,其中包含数组元素的键。
示例:
Javascript
const arr = ['a', 'b', 'c', 'd'];
const iterator = arr.keys();
for (const value of iterator) {
console.log(value);
}
输出:
0
1
2
3
JavaScript entries()方法 : 返回一个可迭代对象,其中包含键值对,其中键是数组中该元素的索引。
示例:
JavaScript
const arr = ['a', 'b', 'c', 'd'];
const iterator = arr.entries();
for (const value of iterator) {
console.log(value);
}
输出:
(2) [0, 'a']
(2) [1, 'b']
(2) [2, 'c']
(2) [3, 'd']
JavaScript copyWithin()方法 :
正如名称所示,它用于将同一个数组中的元素从一个位置浅复制到另一个位置。数组的长度将保持不变。
语法:
copyWithin(target, start, end);
- 您可以省略起始和结束参数,其默认值分别为 0和数组长度
- 如果目标位置在起始位置之后,则 复制的序列将被修剪以适应数组的长度
示例: 首先,我们创建了一个数组,然后前一个copyWithin调用将数组的内容从第4个索引复制到第5个(不包括)索引的0号目标索引。在下一个调用中,它将数组的内容从第3个索引复制到最后一个(因为没有给出结束参数),目标位置为第2个索引。
Javascript
const arr = [1, 2, 3, 4, 5, 6];
console.log(arr.copyWithin(0, 4, 5));
console.log(arr.copyWithin(2, 3));
输出:
(6) [5, 2, 3, 4, 5, 6]
(6) [5, 2, 4, 5, 6, 6]
极客教程