forEach vs Map

Map

console.log(

[1, 2, 3].map(item => {

console.log(item)

})
//1
//2
//3
// [undefined, undefined, undefined]

对比

forEach() -- 对数组中的每个元素执行提供的函数 map() -- 在被调用的数组基础上创建一个新数组,并对数组中的每个元素执行方法

总结

  • 几乎能用 forEach() 实现的功能,都可以使用 map() 实现,反之亦然。

  • map() 分配内存并存储返回值。forEach() 摒弃返回值,并最终返回 undefined(这个方法没有返回值)。

  • forEach()允许回调函数更改当前的数组。map() 将返回一个新数组。

行内元素(包括<img>标签),为了保证不同标签的垂直对齐和题主这种问题,都会考虑是否加上合适的vertical-align,一般取值为 middle

原理

function map(arr, fn){ // 接收一个函数和数组,应用函数到数组的每一项中,然后返回同样大小的数组
    let idx  = 0;
    let len  = arr.length;
    let result  = new Array(len);  // 一个与输入数组同样长度的数组

    while(++idx < len>){
        result[index] = fn(array[idx], idx, arr)
    }
    return result;
}

最后更新于

这有帮助吗?