学习ES6:数组扩展
Array.from()
Array.from(obj[, func])
Function: 将类似数组的对象或可遍历对象转为真正的数组。
return: Array
- 只要是部署了Iterator接口的数据结构,都可以转换。
- 特殊的
...
(扩展运算符)可以将部署了Symbol.iterator
的对象转换成Array。 - 任何具有length属性的对象都可以转换,但是扩展运算符无法将其转换。
- 第二个参数可以传递一个方法,类似于map,对每个元素进行自定义处理后再放入数组。
- 方法只返回数组,并不改变原有对象。
- 对于类数组对象,可以指定length属性,决定最后产生的数组长度。
Array.of()
Array.of(…element)
Function: 将参数转换为数组
return: Array
该方法主要用以数组的构造,弥补原有的构造函数Array()的不足。
1 | Array.of(1, 2, 3); //[1, 2, 3] |
copyWithin()
[copyWithin(target[, start[, end]])](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin)
Function: 在当前数组内部将指定位置的成员复制到其他位置,返回当前数组。
return: array
- 参数
target
: 数值,表述开始替换的位置。 - 参数
start
: 数值, 表示开始读取的数据,默认为0,为负值则表示倒数。 - 参数
end
: 数值, 表示结束读取的数据,默认为数组长度,为负值则表示倒数。
1 | [].copyWithin.call({length: 5, 3: 1}, 0, 3); |
find()、findIndex()
find(callback)
findIndex(callback)
Function: 寻找到第一个符合条件的成员。
return: 返回符合条件的成员 或 下标。
- 回调函数共可以设置三个参数
value
、index
、arr
- 与
IndexOf()
不同,find()
与findIndex()
可以发现NaN。
1 | [NaN].indexOf(NaN); //-1 |
fill()
[fill(value[, start[, end]])](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/fill)
Funtcion: 用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。
return: array
- 用于空数组的初始化非常方便。
- 具体要填充的元素区间是 [start, end) , 一个半开半闭区间。
- 参数
start
为负数,则为倒数。 - 参数
end
为负数,则结束索引为 end+length。