js数组方法map和filter比较

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方法跳过了该元素。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值