Array.from( )用于将一个类数组对象或者可遍历对象转换成一个真正的数组。
那么什么是类数组对象呢?所谓类数组对象,最基本的要求就是具有length属性的对象。
例子1:
function show( ){
let args = Array.from(arguments);
args.push(6);
console.log(args); // [1,2,3,4,5,6]
}
show(1,2,3,4,5)
例子2:
let str = “Strive”;
let arr = Array.from(str);
console.log(arr); // [‘S’,‘t’,‘r’,‘i’,‘v’,‘e’]
好,再来看个重要的例子:
let shuiguo ={
0:‘apple’,
1:‘banana’,
2:‘orange’,
}
let arr = Array.from(shuiguo);
console.log(arr); // [ ]
没错,我们发现打印出一个空数组。好,刚刚说过,类数组只要有length属性就靠谱,我们改改:
let shuiguo ={
0:‘apple’,
1:‘banana’,
2:‘orange’,
length:3
}
let arr = Array.from(shuiguo);
console.log(arr); // [ ‘apple’,‘banana’,‘orange’ ]
当我们加上length属性,且值为3时此时打印出了数组,当我们把length值改为2时此时结果为[ ‘apple’,‘banana’ ],当我们把length值改为4时此时结果为[ ‘apple’,‘banana’,‘orange’,undefined ]
Array.of( )用于将一组值转换成一个真正的数组。
let arr = Array.of(‘apple’,‘banana’,‘orange’);
console.log(arr); // [ ‘apple’,‘banana’,‘orange’ ]
find方法用于查找符合条件的第一个数组成员,没找到就返回undefined.
let arr = [1,2,3,4,5];
let res = arr.find(function(val,index,arr){
return val > 3
})
console.log(res); //4
findIndex方法用于查找符合条件的第一个数组成员对应的索引值,找的是位置,没找到就返回-1.
let arr = [1,2,3,4,5];
let res = arr.findIndex(function(val,index,arr){
return val > 3
})
console.log(res); //3
fill方法用于填充数据,主要有三个参数,用法是arr.fill(填充的东西,从哪开始填充,不包含的结束位置)
let arr =new Array(4);
arr.fill(‘明哥’);
console.log(arr);
打印结果如下:
好,我们再改改代码:
let arr =new Array(4);
arr.fill(‘明哥’,1,3);
console.log(arr);
打印结果如下:
includes方法用来判断一个数组是否包含一个指定的值,包含就返回 true , 否则返回false。
var arr = [1, 2, 3, 2, 5];
console.log(arr.includes(2)); // true
console.log(arr.includes(6)); // false
ES6提供三个新的方法— entries( )、keys( )和 values( )用于遍历数组。它们都返回一个遍历器,可以用for…of循环进行遍历,唯一的区别在于,keys( )是对键名的遍历, values( )是对键值的遍历,entries( )是对键值对的遍历。
for(let index of ['a’,'b’].keys ( )){
console.log(index);
}
//0
//1
for (let elem of ['a’,'b’].values()){
console.log(elem);
}
// 'a’
// ‘b’
for (let [index, elem] of ['a’,‘b’].entries( )){
console.log(index, elem);
}
// 0 “a”
// 1 “b”