ES6对数组引入了几个新函数:
(1) Array.of()
作用是将一组数值,转换为数组。
Array.of(1,2,3,4); //[1,2,3,4]
(2) Array.from()
作用是把类数组的对象或者可遍历的对象变为真正数组,并返回此数组。
let ele=document.getElementsByTagName('a');
ele instanceof Array; //false
ele instanceof Object; //true
我们使用Array.from()可以把对象转为数组:
Array.from(ele) instanceof Array //true
字符串处理:
let str='hello';
Array.from(str); //['h','e','l','l','o']
(3) find() 函数
作用是在数组中找到符合条件的第一个元素。其参数为一个匿名函数。
let arr=[1,2,3,4,5,3];
arr.find(function( value ){
return value>2; //3
// return value>6; //当没有找到符合条件的元素时返回 undefined;
}) ;
(4) findIndex() 函数
作用是返回符合条件的第一个元素在数组中的下标。
let arr=[7,8,9,10];
arr.findIndex(function( value ){
return value>8; //2 ,没有找到时返回-1
})
可以看到 findIndex()和find()的函数的用法相同,作用也基本相同,只是一个返回元素值,一个返回元素的下标。
(5) fill() 函数
作用用指定的值填充数组。
let arr=[1,2,3];
arr.fill(4); //arr=[4,4,4] 默认为全部填充;
arr.fill(4,1,3); //arr=[1,4,4] 第一个参数为要填充的元素,后两个参数表示填充范围的下标为 >=1 && <3 ,即下标为1,2的位置。当最后一个参数超出数组时,则填充到结尾。
(6) entries() 函数
作用对函数的键值进行遍历,返回一个遍历器(即遍历结果),可以用for...of对其遍历。
for(let [i,v] of ['a','b'].entries()){
console.log(i,v);
}
得到数组的键值为:0,1 ,相应的值为: 'a'和'b'。
(7) keys() 函数
作用对数组的索引键进行遍历,返回一个遍历器。
for (let index of ['a','b'].keys()){
console.log(index)
}
(8) values() 函数
作用只对数组的元素进行遍历,返回一个遍历器。
for (let value of ['a','b'].values()){
console.log(value);
}
//a
//b
(9) 数组推导:用简洁的写法,直接通过现有的数组生成新的数组。
传统的写法:
var arr1=[1,2,3];
var arr2=[];
for (let i=0;i<arr1.length;i++){
arr2.push(arr1[i]*2);
}
或者可以使用forEach:
arr1.forEach(function(i){
arr2.push(i*2);
});
新写法:(但是测试发现,chrome还不支持这种写法,Firefox支持。)
var arr1=[1,2,3];
var arr2=[for(i of arr1)i*2]; //2,4,6
还可以加上if判断:
var arr3=[for(i of arr2) if(i>3) i]; //4,6
___________________________
参考公众号:web前端教程