ES6学习笔记----数组的扩展
1、Array.from 应用两类:类似于数组的对象和可遍历的的对象(包含Map和Set),只有转换成真正的数组,才可使用数组的方法。
类比:...扩展运算符也可以使某些对象变成数组
2、Array.of 主要弥补数组构造函数Array()的不足,参数的个数的不同,会导致Array()的差异
没有参数,表示创建空数组
一个参数,表示指定创建数组的长度
2个以上,表示规定数组的元素
Array.of(3, 11, 8) // [3,11,8] Array.of(3) // [3] Array.of(3).length // 1
3、copyWithin,在当前数组内部,将指定位置的成员复制到其他位置,然后返回到当前数组
Array.copyWithin(target,start,end)
target(必须):从该位置开始替换数据
start(可选):从该位置开始读取数据,默认为0
end(可选):到该位置前停止读取数据,默认等于数组长度
4、find() 和 findIndex()
find()方法,用于找出第一个符合条件的数组成员
如果找到第一个,返回--值符合的成员,,如果没有符合,返回undefined.
回调函数可以接受三个参数: 依次为当前的值,当前的位置和原数组
var c = [1, 5, 10, 15].find(function (value, index, arr) { return value > 9; }); console.log('c:' + c); var d = [1, 5, 10, 15].findIndex(function (value, index, arr) { return value > 9; });
findIndex() 与find类似,一般情况下,返回第一个符合条件的成员,若都不符合,则返回-1.
和indexOf相比的优点:可以发现NaN
5、fill()方法使用给定值,填充一个数组。
一个参数:数组全部抹去,填充为参数值
三个参数:用于指定填充的起始位置和结束位置。
// 数组实例的fill() var e = ['a', 'b', 'c'].fill(7); console.log(e); // fill()海可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置 var f = ['a', 'b', 'c'].fill(7, 1, 2); console.log(f);
6、数组实例的entries(),keys(),values(),
entries()是对键值对的遍历
keys()是对键名遍历
values()是对键值的遍历。
// 数组实例的entries(), keys()和values() for (let index of ['a', 'b'].keys()) { console.log(index); } // for (let elem of ['a', 'b'].values()) { // console.log(elem); // } for (let [index, elem] of ['a', 'b'].entries()) { console.log(index, elem); }
7、includes();
表示某个数组是否包含某个给定的值,返回true或false
[1,2,3,4].includes(2)//true [1,2,3,4].includes(5)//false