学习的书目是《ES6标准入门》
下面对第八章 数组的扩展作重点记录
扩展运算符
扩展spread运算符是三个点 …
它如同rest参数的逆运算,它是将一个数组转为用逗号分隔的参数序列。
console.log(1, ...[2,3,4], 5)
//1 2 3 4 5
扩展运算符的应用
1.合并数组
ES5合并数组
var arr2 = ['c']
var arr3 = ['d', 'e']
arr1.concat(arr2,arr3)
ES6合并数组
[...arr1, ...arr2, ...arr3]
2.与解构赋值结合
3.函数的返回值
4.将字符串转为真正的数组
5.任何Iterator接口的对象都可以用扩展运算符转为真正的数组。
Array.from()
Array.from方法用于两类对象转换为真正的数组。
类似数组对象和可遍历(iterable)对象(包括ES6中新增的Set和Map)。
let arraylike {
'0':'a',
'1':'b',
'2':'c',
length:3
};
Array.from(arraylike); //['a','b','c']
Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回后的数组。
Array.of()
Array.of用于将一组数值转换为数组。
Array.of(3,4,5); //[3,4,5]
这个方法的主要目的是弥补数组构造函数Array()的不足。比如Array(3);会识别为长度为3的数组。
copyWithin()
copyWithin方法,在当前数组内部将指定位置的成员复制到其他位置(会覆盖现在的成员),他接受3个参数
target(必需):从该位置开始替换数据
start(可选):从该位置开始读取数据,默认值为0
end(可选):到该位置停止读取数据,默认等于数组长度
find()和findIndex()
find方法,用于找出第一个符合条件的数组成员。如果没有符合的,则返回undefined。
[1,2,3,4].find(n => n > 3); //4
findIndex方法则返回第一个符合条件的成员的位置。如果没有,则返回-1
fill()
fill方法使用给定值填充数组
[1,2,3].fill(2); //[2,2,2]
也可以这样,在指定位置填充
[1,2,3].fill(3,1,2); //[1,3,3]
数组空位
不同与ES5,ES6对于数组的空位会用undefined来填充。
[,,1]; //[undefined, undefined, 1]