ES6 数组方法

2025年3月17日 | 阅读 7 分钟

ES6 中引入了一些新的数组方法,例如 Array.of()、Array.from() 等等。

ES6 中引入的数组方法如下表所示。

序号。方法描述JavaScript 版本
1.Array.from()它将类数组值和可迭代值转换为数组。ECMAScript 6
2.Array.of()它从可变数量的参数创建一个实例,而不是参数的数量或参数的类型。ECMAScript 6
3.Array.prototype.copyWithin()它将数组的一部分复制到同一数组中的另一个位置。ECMAScript 6
4.Array.prototype.find()它根据传递给此方法的特定条件从数组中查找值。ECMAScript 6
5.Array.prototype.findIndex()Array.prototype.findIndex() 返回给定数组中满足给定条件的第一个元素的索引。ECMAScript 6
6.Array.prototype.entries()它返回一个数组迭代器对象,可用于循环遍历数组的键和值。ECMAScript 6
7.Array.prototype.keys()它返回一个数组迭代器对象以及数组的键。ECMAScript 6
8.Array.prototype.values()它提供每个键的值。ECMAScript 6
9.Array.prototype.fill()它用静态值填充指定的数组元素ECMAScript 6

让我们了解这些新的数组方法。

Array.from()

此方法的一般功能是使能够从类数组对象创建新数组。 它将类数组值和可迭代值(例如 setmap)转换为数组。

语法

让我们了解此函数的参数值。

object: 此参数值是必需的。 它是要转换为数组的对象。

mapFunction: 它是可选的。 它是在数组的每个项目上调用的 map 函数。

thisValue: 也是可选的。 它是在执行 mapFunction 时用作 this 的值。

示例

输出

[
  'j', 'a', 'v', 'a',
  'T', 'p', 'o', 'i',
  'n', 't'
]

Array.of()

在 ES5 中,当一个数值传递到数组构造函数时,它将创建一个该大小的数组。 Array.of() 是一种创建数组的新方法,它修复了 ES5 的这种行为。

使用此方法,如果您仅使用单个数值创建数组,则它将仅创建具有该值的数组,而不是创建该大小的数组。

示例

输出

[ 42 ]
1

Array.prototype.copyWithin()

这是 ES6 中添加到数组方法库的一个有趣的方法。 此方法将数组的一部分复制到同一数组中的另一个位置。

它返回修改后的数组,而不会对其长度进行任何修改。

注意:此方法仅覆盖原始数组的元素,而不是向数组添加更多项目。

语法

让我们了解此方法的参数。

target: 它是必需的。 它是复制元素的索引位置。

start: 这是一个可选参数。 它引用开始复制元素的索引位置。 它的默认值为 0。如果此参数的值为负数,则将从末尾开始计算 start。

end: 也是一个可选参数。 它引用停止复制元素的索引位置。 它的默认值是数组的长度。

示例

让我们了解此方法在各种情况下的示例。

输出

[
  1, 4, 5, 4,  5,
  6, 7, 8, 9, 10
]
[
  1, 4,  5, 6,  7,
  8, 9, 10, 9, 10
]
[
  1, 1, 2, 3, 4,
  5, 6, 7, 8, 9
]

Array.prototype.find()

这是另一个新的 ES6 函数。 它根据传递给此方法的特定条件从数组中查找值。 它返回满足给定条件的第一个元素值。

语法

让我们了解此方法的参数。

callback: 它表示对每个元素执行的函数。

currentValue: 这是必需的参数。 它是当前元素的值。

index: 这是一个可选参数。 它是当前元素的数组索引。

arr: 这也是一个可选参数。 这是 find() 操作的数组。

thisValue: 它是可选的。 它是在使用回调时用作 this 的值。

示例

输出

22

注意:ES6 find() 方法与 ES5 filter() 方法不同,因为 filter() 方法总是返回匹配项的数组(返回多个匹配项),但 find() 方法总是返回实际的语句。

Array.prototype.findIndex()

Array.prototype.findIndex() 方法返回给定数组中满足给定条件的第一个元素的索引。 如果没有元素满足条件,则返回 -1。

语法

示例

输出

1

Array.prototype.entries()

此方法返回一个数组迭代器对象,可用于循环遍历数组的键和值。

Entries 将返回一个数组数组,其中每个子数组都是 [index, value] 的数组。

语法

示例

输出

[ 0, 'Red' ]
[ 1, 'Yellow' ]
[ 2, 'Blue' ]
[ 3, 'Black' ]

在上面的示例中,我们也可以使用展开运算符代替 for…of 循环,这将给你相同的结果。

输出

[ 0, 'Red' ] [ 1, 'Yellow' ] [ 2, 'Blue' ] [ 3, 'Black' ]

Array.prototype.keys()

此方法与 Array.entries() 方法 类似。 顾名思义,它用于返回一个数组迭代器对象以及数组的键。

语法

示例

输出

0 1 2 3

Array.prototype.values()

此方法与 Array.keys()Array.entries() 类似,只是它提供了每个键的值。

语法

示例

输出

Red Yellow Blue Black

Array.prototype.fill()

此方法使用静态值填充指定的数组元素。 该值可用于填充数组的一部分或填充整个数组。 它修改原始数组。

您可以指定开始和结束填充的位置。 如果未指定,则将填充所有元素。

语法

参数值

value: 它是用于填充数组的静态值。 它是必需的。

start: 它是开始填充数组的索引。 它是可选的,其默认值为 0。

end: 它是停止填充数组的索引。 它也是可选的,其默认值是数组的长度。

示例

输出

Red Yellow Green Green

JavaScript 数组方法

序号。方法描述JavaScript 版本
1.concat()此方法返回一个包含两个或更多合并数组的新数组对象。ECMAScript 版本 1
2.join()此方法将数组元素连接成一个字符串。
3.pop()此方法用于删除并返回数组的最后一个元素。
4.push()push() 在数组的末尾添加一个或多个元素。
5.reverse()此方法反转给定数组的元素。
6.shift()此方法用于删除并返回数组的第一个元素。
7.slice()此方法返回一个新数组,其中包含给定数组的一部分的副本。
8.sort()此方法以排序顺序返回给定数组的元素。
9.toString()此方法返回以逗号分隔所有数组元素的字符串。
10.unshift()unshift() 在给定数组的开头添加一个或多个元素。
11.splice()此方法将元素添加到/从给定数组中删除。
12.every()此方法用于确定数组的所有元素是否满足提供的函数条件。ECMAScript 版本 5
13.filter()此方法返回一个新数组,其中包含传递提供的函数条件的元素。
14.forEach()此方法为数组的每个元素调用提供的函数一次。
15.isArray()此方法确定一个对象是否为数组。 如果对象是数组,则返回 true,否则返回 false。
16.indexOf()它在给定的数组中搜索指定的元素,并返回第一个匹配项的索引。
17.lastIndexOf()它在给定的数组中搜索指定的元素,并返回最后一个匹配项的索引。
18.map()它为每个数组元素调用指定的函数,并返回新数组
19.reduce()此方法将数组简化为单个值。
20.some()此方法返回一个布尔值。 如果数组元素通过测试,则返回 true,否则返回 false。ECMAScript 版本 3

下一主题ES6 对象