ECMAScript6之Array类型的扩展

时间:2021-08-01 15:19:23

数组的扩展

Array.of()

将一组值转换成数组

Array.of(1,2,3,4,5);
//[1,2,3,4,5]

Array.from()

可将类似数组的对象或者可便利的对象转换成数组,比如nodeList

var aA = document.getElementsByTagName("a");
Array.from(aA);

也可以将字符串转换成数组

let str = "hello",
Array.from(str);

可以结合Set数据结构实现数组的去重

let arr = [1,1,2,2,3];
let set = new Set(arr);
Array.from(set);//Array[1,2,3]

find函数和findIndex函数

find()函数用于找出数组中符合条件的第一个元素

let arr = [1,2,3,4,5,6];
arr.find(function(value){
return value > 2;
});
//value = 3

findIndex()函数返回符合条件的第一个数的位置

let arr = [7,8,9,10];
arr.findIndex(function(value){
return value > 8;
})
//2

fill函数

fill()函数用指定的值填充数组,第二个参数表示开始填充的位置,第三个参数结束的位置

let arr = [1,2,3];
arr.fill(4,1,3);
//[1,4,4]

entries()函数

entries()函数对数组的键值进行遍历,返回一个遍历器,可以用for..of进行遍历

keys()函数

对数组的索引键进行遍历,返回一个遍历器。

values()函数

对数组的元素进行遍历,返回一个遍历器。

数组推导

数组推导就是用简洁的写法,直接通过现有的数组生成新的数组。

var arr1 = [1,2,3,4,5];
var arr2 = [];
for(var i = 0; i < arr1.length; i++){
arr2.push(arr1[i]*2);
}
console.log(arr2);//[2,4,6,8,10]

在ES6中,提供了新的写法:

var arr1 = [1,2,3,4,5];
var arr2 = [for(i of arr1) i * 2];
console.log(arr2);//[2,4,6,8,10] var arr3 = [for(i of arr1) if(i > 3) i];
console.log(arr3);//[4,5]