一:基本用法
1、forEach()
函數(shù)用于對數(shù)組中的每個元素執(zhí)行給定的函數(shù),而它不返回任何值,它只是對每個元素調(diào)用傳入的函數(shù)。這個函數(shù)可以接受三個參數(shù):當前元素的值、當前元素的索引和整個數(shù)組。
const arr = [1, 2, 3];
arr.forEach((value, index, array) => {
console.log(value, index, array);
});
// 輸出:1 0 [1, 2, 3]
// 2 1 [1, 2, 3]
// 3 2 [1, 2, 3]
2、map()
函數(shù)也用于對數(shù)組中的每個元素執(zhí)行給定的函數(shù),但它返回一個新的數(shù)組,其中包含該函數(shù)的返回值。傳入函數(shù)的參數(shù)和forEach()
一樣,但返回值被添加到新的數(shù)組中。
const arr = [1, 2, 3];
const newArr = arr.map((value, index, array) => {
return value * 2;
});
console.log(newArr); // 輸出 [2, 4, 6]
3、filter()方法迭代數(shù)組中的所有元素,并返回滿足指定條件的元素的新數(shù)組。它接受一個回調(diào)函數(shù),該回調(diào)函數(shù)接受三個參數(shù):當前元素,當前元素的索引和原始數(shù)組?;卣{(diào)函數(shù)在數(shù)組的每個元素上執(zhí)行,并將返回值作為一個布爾值。如果回調(diào)函數(shù)返回值為true
,則該元素將會被添加到新的數(shù)組中,否則將被排除。
filter
方法不改變原始數(shù)組。
二:區(qū)別
1、forEach()
和map()
的主要區(qū)別在于它們的返回值。forEach()
不返回任何值,而map()
返回一個新數(shù)組,其中包含了傳入函數(shù)的返回值。
2、在 JavaScript 的 forEach
方法中,是無法直接修改遍歷的數(shù)組元素的,因為 forEach
方法中的回調(diào)函數(shù)在遍歷數(shù)組時是只讀的,也就是說,它們不能修改原數(shù)組元素的值。如果你需要修改數(shù)組元素,可以使用 map
方法來創(chuàng)建一個新數(shù)組,或者使用 for
循環(huán)來遍歷數(shù)組并直接修改元素的值。
3、filter適合用于過濾掉一部分數(shù)據(jù)文章來源:http://www.zghlxwxcb.cn/news/detail-454311.html
一句話總結(jié),forEach適合讀取每項,map適合改變每項,filter適合過濾掉一部分項文章來源地址http://www.zghlxwxcb.cn/news/detail-454311.html
到了這里,關(guān)于JS中Array的forEach、map、filter方法區(qū)別?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!