数组map的使用方法,你是不是一直在画蛇添足?

1,149 阅读1分钟
[].map(() => console.log('1111'));

这段log会打印出来吗?还是会报错? 答案是不会打印出来,不会报错,如果你已懂得其原理,可以右上角了。

当时同事问我为什么没有报错时,我也一脸懵逼。其实MDN上已经明确写了:

也就是说,没有值不会触发callback,注意undefinednull''也算有值。

为了验证,看如下代码:

      const a = [1, ,3].map((item,index) => {
        console.log(item, index);
        return item;
      });
      console.log(a);

结果:

可以看出第二次的log没有打印出来,因为数组中第二个元素不存在,没有触发callback。因此空数组可以看出没有元素,所以不会触发callback。

    a.length > 0 && a.map(() => {})

以上这种写法可以不用写来判断空数组了。