静态方法
Array.isArray()
用于判断值是否是一个数组,返回一个布尔值。
Array.isArray(1) // false
Array.isArray([1]) // true
Array.from()
将两类对象转化为真正的数组
Array.from可以将两类对象转化为真正的数组,一类是类数组对象,一类是可迭代对象(iterable,如Set,Map)。
function toArray(arrayLikeOrLiterable){
return Array.from(arrayLikeOrLiterable)
}
映射转换
如果你想实行进一步的数组转换,你可以向 Array.from()方法传递一个映射用的函数作为第二个参数。此函数会将数组对象的每一个值转换为目标形式,并将其存储在目标数组的对应位置上。
function arg() {
return Array.from(arguments, value => value + 1);
}
console.log(arg('arr', 26')); // ['arr1',27]
指定映射函数内部的 this 值
如果映射函数需要在对象上工作,你可以手动传递第三个参数给 Array.from()方法,从而指定映射函数内部的 this 值
const helper = {
diff: 1,
add(value) {
return value + this.diff;
}
}
function arg() {
return Array.from(arguments, helper.add, helper);
}
console.log(arg('arr', 26)); // ['arr1', 27]
Array.of()
这个方法的主要目的,是帮助开发者在使用 Array 构造器时避开 js 语言的一个怪异点。因为当Array的参数为一个数值时,其指的是数组的长度而非数组元素。
Array(3) // [, , ,]
Array.of方法用于将一组值,转换为数组。
Array.of(3) // [3]
Array.of(3, 11, 8) // [3,11,8]
Array.of() // []