Javascript數(shù)組的?forEach?方法詳細(xì)介紹
前言
在JavaScript 中數(shù)組的遍歷 有很多中方法, 其中有一種 使用 foreach 來遍歷數(shù)組。
語法:
arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
參數(shù):
callback
為數(shù)組中每個元素執(zhí)行的函數(shù),該函數(shù)接收一至三個參數(shù):currentValue數(shù)組中正在處理的當(dāng)前元素。index 可選數(shù)組中正在處理的當(dāng)前元素的索引。array 可選forEach() 方法正在操作的數(shù)組。
thisArg可選
可選參數(shù)。當(dāng)執(zhí)行回調(diào)函數(shù) callback 時,用作 this 的值。
在forEach 中傳入一個 callback 函數(shù), 函數(shù)最多可以接收 三個值, 分別為當(dāng)前正在遍歷的值, 當(dāng)前值對應(yīng)的索引,以及當(dāng)前數(shù)組本身
小試
現(xiàn)在有一個場景,我和我的室友們,現(xiàn)在在一個數(shù)組里面。 按照排行分別為: 老大,老二,老三, … ,老六, 小七.
var arr = ['Liu laoda', 'Li laoer', 'Wei laosan', 'Frank', 'Guan laowu', 'Yang laoliu', 'Li xiaoqi'];
// 在 forEach 中 傳入 一個function ,接收兩個參數(shù)
arr.forEach(function(name,index){
console.log(name, ' - ',index);
})結(jié)果如下: 第一個參數(shù)就是 當(dāng)前遍歷的元素,第二參數(shù)為當(dāng)前元素的索引

注意: forEach() 為每個數(shù)組元素執(zhí)行一次 callback 函數(shù) ,即每個元素都會執(zhí)行一次callback 函數(shù)
來看看回調(diào)函數(shù)的第三個參數(shù) ,表示 就是這個數(shù)組本身。
var arr = ['Liu laoda', 'Li laoer', 'Wei laosan'];
arr.forEach(function(name,index,person){
console.log(name, ' - ',index);
console.log(person);
})
還有一個參數(shù) thisArg 這個參數(shù)
當(dāng)回調(diào)函數(shù)執(zhí)行的時候, 回調(diào)函數(shù)中 使用this 就是這個值。來看一個例子
var arr = ['Liu laoda', 'Li laoer', 'Wei laosan'];
// thisArg 此時傳入 {'name':'frank'},當(dāng)回調(diào)函數(shù)執(zhí)行的時候,this 就是這個值。
arr.forEach(function(name,index){
console.log(this);
},{'name':'frank'})
如果省略了 thisArg 參數(shù),或者其值為 null 或 undefined,this 則指向全局對象。
var arr = ['Liu laoda', 'Li laoer', 'Wei laosan'];
// 沒有傳thisArg 參數(shù)
arr.forEach(function(name,index){
// 此時是window
console.log(this);
})
使用forEach注意事項
除了拋出異常以外,沒有辦法中止或跳出 forEach() 循環(huán)。如果你需要中止或跳出循環(huán),forEach() 方法不是應(yīng)當(dāng)使用的工具。
forEach 不支持 break這種語句退出循環(huán)。
如果你想在遍歷數(shù)組的過程中想要 提前終止循環(huán),就不要使用 forEach 遍歷, 可以使用for 循環(huán)來遍歷數(shù)組.
例如:我只想遍歷到i==0 的時候,提前終止循環(huán)
var arr = ['Liu laoda', 'Li laoer', 'Wei laosan'];
for (let i = 0; i < arr.length; i++) {
if (i === 1) {
break;
}
console.log(arr[i],'-', i);
}
// Liu laoda - 0到此這篇關(guān)于Javascript數(shù)組的 forEach 方法詳細(xì)介紹的文章就介紹到這了,更多相關(guān)JS forEach內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript中的50+個實用工具函數(shù)小結(jié)
JavaScript可以做很多出色的事情,本篇文章給大家整理50+個實用工具函數(shù),可以幫助你提高工作效率并可以幫助調(diào)試代碼,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
TypeScript中Map對象使用及Map與字典的區(qū)別詳解
Map對象主要的應(yīng)用場景在于數(shù)據(jù)重組和數(shù)據(jù)儲存,下面這篇文章主要給大家介紹了TypeScript中Map對象使用及Map與字典的區(qū)別的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
BootStrap Table復(fù)選框默認(rèn)選中功能的實現(xiàn)代碼(從數(shù)據(jù)庫獲取到對應(yīng)的狀態(tài)進(jìn)行判斷是否為選中狀態(tài))
本文通過實例代碼給大家介紹了BootStrap Table復(fù)選框默認(rèn)選中功能(從數(shù)據(jù)庫獲取到對應(yīng)的狀態(tài)進(jìn)行判斷是否為選中狀態(tài)),代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧2017-07-07
javaScript 判斷字符串是否為數(shù)字的簡單方法
javascript在通過parseIn或parseFloat將字符串轉(zhuǎn)化為數(shù)字的過程中,如果字符串中包含有非數(shù)字,那么將會返回NaN,參考下面代碼2009-07-07
深入了解JavaScript中的二進(jìn)制操作及位掩碼應(yīng)用
在JavaScript中,二進(jìn)制操作可以說是一項非常強大和有用的技能,尤其是在處理數(shù)據(jù)和位掩碼時,它們是不可或缺的,本文將介紹JavaScript中的二進(jìn)制操作,包括什么是二進(jìn)制以及如何在JavaScript中進(jìn)行二進(jìn)制操作2023-06-06

