JavaScript中forEach和map方法的使用與區(qū)別
前言
上節(jié)我們說(shuō)到遍歷數(shù)組的方法,使用for循環(huán)進(jìn)行遍歷,其實(shí)在js中還有另外兩種方法可以將我們的數(shù)組更快的遍歷出來(lái),那就是forEach方法和map方法。下面我們一起看看如何使用吧。
forEach方法
forEach()方法需要一個(gè)函數(shù)作為參數(shù)
- 像這種函數(shù),由我們創(chuàng)建但是不由我們調(diào)用的被稱(chēng)為回調(diào)函數(shù)。
- 數(shù)組中有幾個(gè)元素,函數(shù)就會(huì)執(zhí)行幾次,每次執(zhí)行時(shí),瀏覽器會(huì)將遍歷到的元素以實(shí)參的形式傳遞進(jìn)來(lái),我們可以來(lái)定義形參來(lái)讀取這些內(nèi)容。
- 瀏覽器會(huì)在回調(diào)函數(shù)中傳遞三個(gè)參數(shù):
第一個(gè)參數(shù) - 當(dāng)前正在遍歷的元素

第二個(gè)參數(shù) - 當(dāng)前正在遍歷的元素的索引

第三個(gè)參數(shù) - 正在遍歷的數(shù)組

map方法
同樣的map方法和forEach方法一樣,需要用到一個(gè)函數(shù)作為參數(shù)。該函數(shù)作為回調(diào)函數(shù),同樣該回調(diào)函數(shù)中傳遞三個(gè)參數(shù)。
第一個(gè)參數(shù) - 當(dāng)前正在遍歷的元素

第二個(gè)參數(shù) - 當(dāng)前正在遍歷的元素的索引

第三個(gè)參數(shù) - 正在遍歷的數(shù)組

map和forEach方法的區(qū)別
以下截圖來(lái)自??途W(wǎng)!

從上圖來(lái)看,map方法會(huì)返回一個(gè)新的數(shù)組,而forEach方法不會(huì),如圖所示。

補(bǔ)充:二者的應(yīng)用場(chǎng)景
forEach可用于單選多選框的綁定
let arr = [
{ name:'商品1', select:false },
{ name:'商品2', select:true },
{ name:'商品3', select:false },
{ name:'商品4', select:false },
]
// 需求: 全選(設(shè)置每一個(gè)元素的select值為true)
arr.forEach( (item,index) => {
item.select = true
} )
console.log( arr )
map可用于對(duì)數(shù)組的批量操作
let arr = [ 20,50,88,60,56 ]
// 箭頭函數(shù)的函數(shù)體只有一行,則可以省略大括號(hào)。 此時(shí)也必須要省略return
const res = arr.map( item => item*0.5 )
console.log(res)
總結(jié)
到此這篇關(guān)于JavaScript中forEach和map方法的使用與區(qū)別的文章就介紹到這了,更多相關(guān)js中forEach和map方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實(shí)現(xiàn)多物體緩沖運(yùn)動(dòng)實(shí)例代碼
這篇文章主要介紹了JS實(shí)現(xiàn)多物體緩沖運(yùn)動(dòng)實(shí)例代碼,有需要的朋友可以參考一下2013-11-11
JavaScrip實(shí)現(xiàn)一個(gè)有時(shí)間限制的緩存類(lèi)的方式
本文將探索 JavaScript 中一種基于自動(dòng)過(guò)期機(jī)制的時(shí)間限制緩存實(shí)現(xiàn)方式,提高數(shù)據(jù)緩存策略的靈活性和效率,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01
JS實(shí)現(xiàn)圖片的不間斷連續(xù)滾動(dòng)的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇JS實(shí)現(xiàn)圖片的不間斷連續(xù)滾動(dòng)的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
PHP中使用微秒計(jì)算腳本執(zhí)行時(shí)間例子
這篇文章主要介紹了PHP中使用微秒計(jì)算腳本執(zhí)行時(shí)間例子,本文先是講解了microtime函數(shù)的一些知識(shí),然后給出了一個(gè)計(jì)算腳本運(yùn)行時(shí)間的類(lèi),需要的朋友可以參考下2014-11-11
Js Jquery創(chuàng)建一個(gè)彈出層可加載一個(gè)頁(yè)面
Js Jquery創(chuàng)建一個(gè)彈出層,當(dāng)加載一個(gè)頁(yè)面進(jìn)彈出層時(shí)出現(xiàn)亂碼,示例代碼如下,大家可以參考參考2014-05-05
js實(shí)現(xiàn)的簡(jiǎn)單radio背景顏色選擇器代碼
這篇文章主要介紹了js實(shí)現(xiàn)的簡(jiǎn)單radio背景顏色選擇器代碼,利用鼠標(biāo)事件及頁(yè)面元素動(dòng)態(tài)操作實(shí)現(xiàn)頁(yè)面背景顏色的改變功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
利用chrome瀏覽器進(jìn)行js調(diào)試并找出元素綁定的點(diǎn)擊事件詳解
“工欲善其事,必先利其器” 恩,這句話(huà)我覺(jué)得說(shuō)的特別有道理,下面這篇文章主要給大家介紹了關(guān)于利用chrome瀏覽器進(jìn)行js調(diào)試并找出元素綁定的點(diǎn)擊事件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09
JS實(shí)現(xiàn)unicode和UTF-8之間的互相轉(zhuǎn)換互轉(zhuǎn)
需要將PC送過(guò)來(lái)的UTF-8轉(zhuǎn)換成UNICODE才能將內(nèi)容通過(guò)短信發(fā)送出去,同樣,接收到的短信為unicode編碼,也許轉(zhuǎn)換成UTF-8才能在PC端軟件顯示出來(lái)2017-07-07

