合并数组
(浅拷贝)
es5中,使用concat()
const a1 = [1,2];
const a2 = [3,4];
let a3=a1.concat(a2);
console.log(a3) //[1,2,3,4]
es6中,使用扩展运算符
const a1 = [1,2];
const a2 = [3,4];
let a3=[...a1,...a2]
console.log(a3) //[1,2,3,4]
一些新的方法
1.Array.from()
可以将类素组对象和可遍历的对象转换为数组。
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
// ES5的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']
// ES6的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
2.Array.of()
Array.of
方法用于将一组值,转换为数组。
Array.of(3, 11, 8) // [3,11,8]
数组实例的 find() 和 findIndex()
1.find
方法,用于找出第一个符合条件的数组成员。参数是一个回调函数,返回符合条件的第一个值。如果没有符合条件的成员,则返回undefined。
[1, 4, -5, 10].find((n) => n < 0) // -5
find
方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。
2.findIndex
方法返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。
数组实例的 entries(),keys() 和 values()
使用for..of..
遍历数组,keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。
for (let index of ['a', 'b'].keys()) {
console.log(index);
}
// 0
// 1
includes()
1.查找数组中是否包含某个值,返回布尔类型。(与字符串中的includes()类似).第一个参数是要查找的值,第二个参数是从哪一个位置开始查找。
[1, 2, 3].includes(2) // true
[1, 2, 3].includes(3, 3); // false
2.与indexOf
进行比较
indexOf
内部使用严格相等运算符(===)进行判断,所以无法检测NaN的位置。includes
是可以检测NaN的。
网友评论