数组的扩展
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]