1. 程式人生 > >forEach與map的使用與區別

forEach與map的使用與區別

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