1.扩展运算符
可以将一个数组转为参数序列
let arr = [1,2,3,4,true,null,undefined];
console.log(...arr); //1 2 3 4 true null undefined
console.log(...[1,2,3,4]); //1 2 3 4
2.Array.from
可以将类数组对象或是可遍历的interable对象转为数组,包括ES6新增的Set和Map
let likeArr = {
'0':'hello',
'1':'world',
'2':'!!',
length:3
};
//ES6
console.log(Array.from(likeArr)); //[ 'hello', 'world', '!!' ]
//ES5中可以这样写
console.log(Array.prototype.slice.call(likeArr)); //[ 'hello', 'world', '!!' ]
3.Array.of()
可以将一组值转为数组。
同时也弥补了ES5中,var arr = new Array(5)这种方式得到的不是[5],而是[ , , , , ,],5个undefined
let arr = Array.of(5);
console.log(arr); //[ 5 ]
let arr2 = Array.of(1,'2',true,undefined); //[ 1, '2', true, undefined ]
console.log(arr2);
4.copyWithin()方法
指定数组中的元素替换原有的元素,它会改变原数组
有三个参数
- 第一个参数(必填),开始替换的位置,0表示1号位置,1表示2号位置,一次类推,如果是负值,表示倒数第几个,-1表示倒数第一个。
- 第二个参数(选填),开始读取数据的位置,默认为0,正值表示下标,负值为倒数第几个。
- 第三个参数(选填),结束读取数据的位置,默认为arr.length,正值表示下标,负值为倒数第几个。不包括本身,如果开始位置下标为1,结束位置下标为3,则读取到的是下标为1和2的数据。
let arr = [1,2,3,4,5];
arr.copyWithin(0,1,3); //[ 2, 3, 3, 4, 5 ]
console.log(arr);
从0号位置开始替换,替换的值为从下标为2的位置到下标为4的位置,读取到的值为2和3,将2和3从0号位置替换,得到[2,3,3,4,5]。
5.数组的迭代方法find()和findIndex()
find()用于查找数组中第一个符合条件的元素,找到后就停止查找,如果未找到符合的元素,则返回undefined
findIndex()用于查找数组中的i一个符个条件的元素的下标,找到后就停止查找,没找到则返回-1
let arr = [1,2,3,4,5,6,7];
let result = arr.find((item) => {
return item > 4;
});
console.log(result); //5 即使数组中不止一个大于4的元素,但只要找到一个就不会继续查找
let arr = [1,2,3,4,5,6,7];
let result = arr.findIndex((item) => {
return item > 4;
});
console.log(result); //4 findIndex()找的是符合条件的元素的下标,元素5的下标为4
6.fill()方法
用给定的数值填充数组,会改变原数组
可以接收3个参数
- 第一个参数,填充的值
- 第二个参数,开始填充的位置
- 第三个参数,结束填充的位置
let arr = [1,2,3,4,5,6,7];
arr.fill(8);
console.log(arr); //[ 8, 8, 8, 8, 8, 8, 8 ]
arr.fill(9,1,3);
console.log(arr); //[ 8, 2, 2, 8, 8, 8, 8 ]
7.keys()方法 values()方法和entries()方法
它们都用于遍历数组,返回的都是一个遍历器对象,可以使用ES6中新增的for…of对齐返回值进行遍历。
- keys() 遍历的是键名
- values() 遍历的是键值
- entries() 遍历的是键值对
let arr = ['a','b','c'];
let keys = arr.keys();
for (let key of keys){
console.log(key); //键名
//0
//1
//2
}
let values = arr.values();
for (let key of values){
console.log(key); //键值
//'a'
//'b'
//'c'
}
let entries = arr.entries();
for (let [key,value] of entries){
console.log([key,value]); //键值对
//[ 0, 'a' ]
//[ 1, 'b' ]
//[ 2, 'c' ]
}
有不对的地方欢迎指出,共同学习 :)

1282

被折叠的 条评论
为什么被折叠?



