forEach與map的使用與區別
阿新 • • 發佈:2018-11-03
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