ES6 数组方法



ES6 数组方法

ES6 数组方法

ES6 中引入了一些新的数组方法,例如如 Array.of()、Array.from()、 等等。
ES6 中引入的数组方法如下表。
方法 说明 JavaScript 版本
Array.from() 它将类数组值和可迭代值转换为数组。 ECMAScript 6
Array.of() 它从可变数量的参数而不是参数数量或参数类型创建一个实例。 ECMAScript 6
Array.prototype.copyWithin() 它将数组的一部分复制到同一数组中的不同位置。 ECMAScript 6
Array.prototype.find() 它根据传递给此方法的特定条件从数组中找到一个值。 ECMAScript 6
Array.prototype.findIndex() Array.prototype.findIndex() 返回满足给定条件的给定数组的第一个元素的索引。 ECMAScript 6
Array.prototype.entries() 它返回一个数组迭代器对象,可用于遍历数组的键和值。 ECMAScript 6
Array.prototype.keys() 它返回一个数组迭代器对象以及数组的键。 ECMAScript 6
Array.prototype.values() 它提供了每个键的值。 ECMAScript 6
Array.prototype.fill() 用静态值填充指定的数组元素 ECMAScript 6
让我们了解这些新的数组方法。

Array.from()

这个方法的一般功能是从类似数组的对象启用新数组创建。它将类似数组的值和可迭代值(例如 set 和 ma​​p)转换为数组。
语法
Array.from(object, mapFunction, thisValue)

让我们了解一下这个函数的参数值。
对象: 这个参数值总是需要的。它是要转换为数组的对象。
ma​​pFunction: 它是可选的。它是一个映射函数,用于调用数组的每一项。
thisValue: 它也是可选的。这是一个在执行 ma​​pFunction 时用作 this 的值。
示例
let name = Array.from('lidihuo')
console.log(name)

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

Array.of()

在 ES5 中,当单个数值传入数组构造函数时,它将创建一个该大小的数组. Array.of() 是一种创建数组的新方法,它修复了 ES5 的这种行为。
通过使用此方法,如果您仅使用单个数字创建数组值,那么它将仅使用该值创建一个数组,而不是创建该大小的数组。
示例
let name = Array.of(42)
console.log(name)
console.log(name.length)

输出
[ 42 ]
1

Array.prototype.copyWithin()

这是一个有趣的方法,被添加到 ES6 中的数组方法库中。此方法将数组的一部分复制到同一数组中的不同位置。
返回修改后的数组,长度没有任何修改。
注意: 此方法不会向数组添加更多项,而是仅覆盖原始数组的元素。
语法
array.copyWithin(target, start, end)

让我们了解这个方法的参数。
目标: 它总是必需的。复制元素的索引位置。
start: 可选参数。它指的是开始复制元素的索引位置。它的默认值是0。如果这个参数的值为负,那么start将从末尾开始计数。
end: 也是一个可选参数。它指的是停止复制元素的索引位置。它的默认值是数组的长度。
示例
让我们了解一下这个方法的例子,有各种可能性。
const num = [1,2,3,4,5,6,7,8,9,10];
const num1 = [1,2,3,4,5,6,7,8,9,10];
const num2 = [1,2,3,4,5,6,7,8,9,10];
console.log(num.copyWithin(1,3,5));
console.log(num1.copyWithin(1,3)); //omitting the parameter end
console.log(num2.copyWithin(1)); //omitting the parameters start and 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 的功能。它根据传递给此方法的特定条件从数组中找到一个值。它返回满足给定条件的第一个元素值。
语法
array.find(callback(currentValue, index, arr),thisValue)

来了解一下这个方法的参数。
回调: 它代表了执行每个元素的函数。
currentValue: It 是必需的参数。它是当前元素的值。
index: 它是一个可选参数。它是当前元素的数组索引。
arr: 它也是一个可选参数。它是 find() 操作的数组。
thisValue: 它是可选的。这是一个在使用回调时用作this 的值。
示例
var arr=[5,22,19,25,34];  
var result=arr.find(x=>x>20);  
console.log(result);

输出
22

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

Array.prototype.findIndex()

Array.prototype.findIndex() 方法返回第一个的索引满足给定条件的给定数组的元素。如果没有元素满足条件,则返回-1、
语法
array.findIndex(callback(value,index,arr),thisArg)   

示例
var arr=[5,22,19,25,34];  
var result=arr.findIndex(x=>x>20);  
console.log(result)

输出
1

Array.prototype.entries()

此方法返回一个数组迭代器对象,可用于遍历数组的键和值。
Entries 将返回一个数组数组,其中每个子数组都是一个 [index, value] 的数组。
语法
array.entries()

示例
var colours = ["Red", "Yellow", "Blue", "Black"];
var show = colours.entries();
for (i of show) {
  console.log(i);
}

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

在上面的例子中,我们也可以使用扩展运算符代替 for...of 循环,这会给你同样的结果。
var colours = ["Red", "Yellow", "Blue", "Black"];
var show = colours.entries();
console.log(...show);

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

Array.prototype.keys()

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

示例
var colours = ["Red", "Yellow", "Blue", "Black"];
var show = colours.keys();
console.log(...show);

输出
0 1 2 3

Array.prototype.values()

这个方法类似于Array.keys()和Array .entries() 除了它提供每个键的值。
语法
array.values()

示例
var colours = ["Red", "Yellow", "Blue", "Black"];
var show = colours.values();
console.log(...show);

输出
Red Yellow Blue Black

Array.prototype.fill()

此方法用静态值填充指定的数组元素。该值可用于填充数组的一部分或填充整个数组。
可以指定填充的开始和结束位置。如果未指定,则将填充所有元素。
语法
array.fill(value, start, end)

参数值
值: 填充数组的静态值。它始终是必需的。
start: 它是开始填充数组的索引。可选,默认值为0。
end: 停止填充数组的索引。它也是可选的,它的默认值是数组的长度。
示例
var colours = ["Red", "Yellow", "Blue", "Black"];
var show = colours.fill("Green",2,4);
console.log(...show);

输出
Red Yellow Green Green

JavaScript 数组方法

方法 说明 JavaScript 版本
concat() 此方法返回一个包含两个或多个合并数组的新数组对象。 ECMAScript 版本 1
join() 该方法将数组元素作为字符串连接起来。
pop() 该方法用于移除并返回数组的最后一个元素。
push() push() 在数组末尾添加一个或多个元素。
reverse() 此方法反转给定数组的元素。
shift() 该方法用于移除并返回数组的第一个元素。
slice() 此方法返回一个新数组,其中包含给定数组部分的副本。
sort() 此方法按排序顺序返回给定数组的元素。
toString() 此方法返回所有数组元素以逗号分隔的字符串。
unshift() unshift() 在给定数组的开头添加一个或多个元素。
11. splice() 此方法向/从给定数组添加/删除元素。
every() 该方法用于判断数组的所有元素是否满足提供的函数条件。 ECMAScript 版本 5
filter() 此方法返回新数组,其中包含通过提供的函数条件的元素。
forEach() 此方法为数组的每个元素调用一次提供的函数。
isArray() 这个方法判断一个对象是否是一个数组。如果对象是数组则返回真,否则返回假。
indexOf() 它搜索给定数组中的指定元素并返回第一个匹配项的索引。
lastIndexOf() 它搜索给定数组中的指定元素并返回最后一个匹配项的索引。
map() 它为每个数组元素调用指定的函数并返回新数组
reduce() 此方法将数组缩减为单个值。
some() 此方法返回一个布尔值。如果数组元素通过测试,则返回 true,否则返回 false。 ECMAScript 版本 3