es6中新增数组的方法

1. Array.from

这个东西就是把一些集合,或者长的像数组的伪数组转换成真的数组,比如arguments,js选择器找到dom集合,
还有对象模拟的数组
var obj = {
'0' : 1,
length : 1
}
Array.from(obj / arguments / 伪数组) //返回的是一个数组
[].slice.call(arguments, 0) //这种方式根from方法是一样的效果

//Array.from还有第二个参数,是一个回掉函数,功能类似map
Array.from( [1, 2, 3], item => item * 2 )

2. Array.of

Array.of(1, 2, 3, 4)    //把参数合并成一个数组返回,如果参数为空,则返回一个空数组

3. copyWithin

//这个东西用的不多,但是很有意思
//首先,参数有3个
//1: 被替换的起始位置   2: 选取替换值的起始位置   3: 选取替换值得结束位置
let arr = [1, 'c', 'd', 'a', 'b'];  //假如我想把a,b替换到1的位置
arr.copyWithin(0, 3, 5)   // ["a", "b", "d", "a", "b"]

4. find/findIndex

//find  返回数组中第一个符合条件的元素, findIndex返回索引
[1, 2, 3, 4, 5].find(function(item){
    return item > 3
})

5. fill

//功能一: 字面意思填满,实际功能就是把数组中的每一个元素替换成指定值
let arr = [1, 2, 3, 4]
arr.fill(5)        //arr全变成了5

//功能二:指定范围替换,这功能似曾相识啊
arr.fill(6, 1, 3) //使用6 替换数组中 下表为1-3范围的值, 范围是下标>=1 && <3 的位置。
//猛的一看以为功能和splice一样呢,又去巩固了一下。splice是删除某一个元素,然后增加指定的个数,并且它第一个参数是下标起点,第二个参数是个数,而不是结束下标。

//扩展
[].fill.call( { length : 3 }, 4)  //结果为以为是数组,每个元素是4,结果返回的竟然还是对象。。。

6. entries/keys/values

let arr=['a', 'b', 'c']
for(let key of arr.keys()){}                     //取键
for(let value of arr.values()){}                //取值;不能直接使用,有兼容性问题,甚至谷歌
for(let [key, value] of arr.entries()){}       //都取

7.inludes

var a = function(){}
[1, 2, 3, 4, a].includes(a)    //true
[1, 2, 3, 4, NaN].includes(NaN)    //true
posted @ 2017-11-17 17:54  happysun85  阅读(5608)  评论(0编辑  收藏  举报