1.map()
(1)怎么用?
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
const newArr = arr.map((a) => {
// console.log(a)
return 2;
});
console.log(newArr); // [2, 2, 2]
(2)用什么特点?(注意点)
map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值(包括 undefined)组合起来形成一个新数组。 callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete 删除的索引则不会被调用。
下面举个例子:
const arr2 = new Array(3);
arr2[1] = 90;
const newArr = arr2.map((a) => {
console.log(a) // 这里只会执行一次的,打印90
return a;
});
console.log(newArr);
2.filter()
(1)怎么用?
filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
(从原数组中过滤元素,返回新数组)。
(2)特点
filter 为数组中的每个元素调用一次 callback 函数,并利用所有使得 callback 返回 true 或等价于 true 的值的元素创建一个新数组。callback 只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用。那些没有通过 callback 测试的元素会被跳过,不会被包含在新数组中。
数组中被删除的元素会被跳过,举个栗子:
运行结果如下:
可以看到arr数组元素第一位被删除后,map方法跳过了该元素。