let a = [1, 2, 3];
let newA = a.map((v) => v * v);
console.log(newA);
let a = [1, , 2, , 3]; // 如果数组是稀疏的,缺失元素不会调用函数,但是返回的数组也会和原始数组一样稀疏let newA = a.map((v) => v * v);
console.log(newA);
7. find()
遍历数组,寻找第一个符合条件的元素,找到就停止迭代
1 2 3
let a = (a = [1, 2, 3, 4, 5]);
console.log(a.find((v) => v >= 2));
console.log(a.find((v) => v < 0)); // 找不到符合条件的,返回undefined
8. flat()
用于打平数组(把嵌套数组变为普通的数组元素)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
let a = [1, [2, 3]];
console.log(a.flat());
a = [1, [2, [3]]];
console.log(a.flat()); // 不带参,只会打平一级嵌套
a = [1, [2, [3, [4]]]];
console.log(a.flat(1));
console.log(a.flat(2)); // 带参,可以打平多级嵌套console.log(a.flat(3));
console.log(a.flat(4)); // 打平后的数组如果没有嵌套数组,则不会再被打平
a = [1, [2, 3, [4, 5, 6, [7, 8, [9, 10, [11, 12]]]]]];
console.log(a.flat(Infinity)); // 通过Infinity实现把任意嵌套数组打平为不嵌套的数组
9. concat()
1 2 3 4
let a = [1, 2, 3];
let b = [4, 5, 6];
console.log(b.concat(a)); // 拼接两个数组console.log(b.concat(1, 2)); // 也可以添加元素。不会改变原数组,而是创建新数组
10. push()、pop()、shift()、unshift()
1 2 3 4 5 6 7 8 9 10 11 12 13
let a = [];
a.push(1);
console.log(a.push(2, 3)); // push()在数组末尾添加元素,并返回数组的新长度console.log(a);
console.log(a.pop()); // pop()删除数组末尾的元素,并返回删除的元素console.log(a);
console.log(a.unshift(11, 22)); // unshift()在数组的开头添加元素,并返回数组的新长度console.log(a);
console.log(a.shift()); // shift()删除数组开头的元素,并返回删除的元素console.log(a);