forEach与map的区别

1.首先,两个都是循环遍历数组的方法
forEach和map方法里的每次执行,匿名函数都支持3个参数,参数分别是item(当前每一项)、index(索引值)、arr(原数组)
map方法不改变原数组,this指向window
map()方法不会对空数组进行检测。
map 有返回值

//求数组的平方和,不改变原数组
function square(arr) {
    var a = arr.slice(0)
    a = a.map(function(item,index,arr) {
        return item*item
    })
    return a
}

2.forEach方法用于调用数组的每个元素,将元素传给回调函数
数组中有几项,那么传递进去的匿名回调函数就需要执行几次
forEach 没有返回值

function square(arr){
    var a=[];
    arr.forEach(function(val){
        a.push(val*val)
    })
    return a
}

猜你喜欢

转载自blog.csdn.net/linayangoo/article/details/86514467