forEach与map的使用与区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaobing_hope/article/details/76993703

js中,经常需要对数组进行遍历操作,对数组进行遍历操作可以使用Array提供的forEach方法和map方法

那两者在使用上有啥区别呢?分别在什么情况下使用呢?

forEach()方法

对数组的每一个元素都执行一次提供的函数

let a = ['a', 'b', 'c'];
a.forEach((item) => {
    console.log(item);
});

// a
// b
// c

语法:

array.forEach(callback(currentValue, index, array){       // 参数:当前值,索引,数组
    //do something
}, this)

array.forEach(callback[, thisArg])

返回值: undefined
==该方法不会改变原来的数组,只是将数组中的每一项作为callback的参数执行一次==

map()方法

map()方法创建一个新的数组,其结果是该数组中的每个元素都调用一次callback后返回的结果,同样,该方法不改变原有的数组

let arr = [3, 5, 2, 2, 5, 5];
let b = arr.map((item) => { return item+5;});

console.log(b);   // [8, 10, 7, 7, 10, 10]
console.log(arr);  // [3, 5, 2, 2, 5, 5]

语法:

let array = arr.map(function callback(currentValue, index, array) {   // 参数解析: 当前值,索引,原数组
    // Return element for new_array 
}[, thisArg])

==返回值: 新数组,每个元素都是回调函数的结果==

所以在开发中,可以根据业务需求,选择使用forEach或者map来处理数组。

js内置对象Array提供了非常多也非常有用的方法,需要用到的时候,可以随时查阅MDN
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/some

猜你喜欢

转载自blog.csdn.net/xiaobing_hope/article/details/76993703