ES6之数组的扩展

Array.of( )

将一组数值转换为数组,用来弥补Array()的不足。

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

Array.from( )

将伪数组或者可遍历的的对象等有length属性的转换为真正的数组。

// 伪数组
var list = document.getElementsByTagName('li');
var arr = Array.from(list);
console.log(arr);  //  [li, li, li]
console.log(arr instanceof Array);  // true

// 字符串
Array.from(‘string’);  // [ 's', 't', 'r', 'i', 'n', 'g' ]

find( )

找出数组中符合条件的第一个元素。
[ ].find(function(value, index, arr)
参数是一个回调函数,数组的每个元素都执行该函数
回调函数的第一个参数:当前值
回调函数的第二个参数:当前值的索引
回调函数的第三个参数:原数组

var arr = [1, 3, 5];
var res = arr.find(function(value, index, arr){
    console.log('index:'+index,'value:'+value);
    console.log(arr);
    console.log('++++++++');
    return value > 1;
});
console.log(res);

// 打印
index:0 value:1
[ 1, 3, 5 ]
++++++++
index:1 value:3
[ 1, 3, 5 ]
++++++++
3

findIndex( )

返回符合条件的第一个元素在数组的位置。
和find()用法差不多。

var arr = [1, 3, 5];
var res = arr.find(function(value, index, arr){
    return value > 1;
});
// res -->> 1

fill( )

将指定元素填充到数组中。
一个参数:数组中所有元素都被替换填充
三个参数:第一个参数是填充的元素,第二个参数是开始填充的位置,第三个参数是结束填充的位置之前

var arr = [1, 3, 5];
arr.fill(2);  // [2, 2, 2]
arr.fill(2,0,2);  // [2, 2, 5]

entries( )、keys( )、values( )

这三个类似,都是通过跟for..of循环配合遍历,得到数组中的元素或索引。

// entries
var arr = [1, 3, 5];
for(let [i, val] of arr.entries()){
    console.log(i,val);
}
// 打印:
0 1
1 3
2 5
// keys
for(let i of arr.keys()){
    console.log(i);
}
//  打印
0
1
2

// values
for(let value of arr.values()){
    console.log(value);
}
//  打印
1
3
5

你可能感兴趣的:(ES6之数组的扩展)