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