js之数组静态方法

1,411 阅读1分钟

1、Array.from()

Array.from(arrayLike[, mapFn[, thisArg]])

作用:将两类对象转成数组,类似数组的对象和可遍历(iterable)的对象。

类似数组对象,本质特征只有一点,必须有length属性。常见有NodeList集合,arguments对象,{length: 2} 可遍历(iterable)的对象有字符串、Set结构等具有Iterator接口。处理字符串时,可以避免将大于\uffff的Unicode字符串算作2个字符处理的bug。

注意:扩展运算符只能将可遍历(iterable)的对象转成数组

Array.from({length: 2}, () => 'jack')
//['jack', 'jack']
Array.from('hello')
//['h', 'e', 'l', 'l', 'o']

let nameSet = new Set(['a', 'b'];
Array.from(nameSet)
//['a', 'b']

2、Array.of()

Array.of(element0[, element1[, ...[, elementN]]])

作用:将一组数值转成数组。不会因为参数不同,有不同的作用。

new Array()或Array()的缺点:只有一个参数指定数组长度。两个参数或者以上返回由参数组成的数组。

Array()//[]
Array(3)//[,,,]
Array(3,4,5)//[3,4,5]
Array.of()//[]
Array(undefined)//[undefined]
Array(3)//[3]
Array(3,4,5)//[3,4,5]

3、Array.isArray()

Array.isArray(obj)

作用:判断是否是数组

Array.isArray([]) //true
Array.isArray({length: 3}) //false
Array.isArray({__proto__:Array.prototype}) //false
Array.isArray()