ES6 数组Array.of和Array.from详解

在ES6数组中新增了诸如Array.of,Arrar.from方法,这些方法有什么作用呢,今天我们来一探究竟。

一,Array.of

作用:Array.of方法用于将一组值,转换为数组,有的同学要问了new Array[1,2,3,4],或者直接var arr=[1,2,3,4]也能实现啊,直接使用var arr=[],当然没有问题,稍微有点JavaScript基础的同学应该清楚,当数组中只切只有一个数字时。使用new Array得到的可能不是你要的结果,例如:new Array(2)得到的是长度为2的空数组,当然如果这就是你要的结果当然没问题,如果不是你要的结果呢,除了直接var arr=[2]还有没有其它方式呢?

Array.of的出现就是为了解决这一问题。

var arr=Array.of(4);
console.log(arr)//[4]

 返回的是含有元素4的数组

二,Array.from

在JavaScript中有两类对象可以直接使用Array.from方法转变成真正的数组,分别是类数组对象和可迭代(iterable)对象【包括es6新增的数据结构set,map】,该方法会返回新的数组对象,并不会改变原对象。【es6之前可以使用Array.prototype.slice.call方法,但是书写过于繁琐,故用Array.from代替。】

1,类数组对象

1)、普通对象

var obj={
    0:"aaa",
    1:"bbb",
    length:2
}

console.log(Array.from(obj))//["aaa","bbb"]

2)、NodeList元素

var divlist=document.querySelectorAll('div')
console.log(Array.from(divlist))//返回包括div元素的数组

2,可迭代对象

let set1=new Set([1,2,3,4])
console.log(Array.from(set1))//[1,2,3,4]

另外map,字符串,函数的arguments参数类型,都可作为转换对象

发布了54 篇原创文章 · 获赞 0 · 访问量 7694

猜你喜欢

转载自blog.csdn.net/yuyongkun4519/article/details/90375586
今日推荐