在之前的文章中我們了解了迭代數(shù)組的兩種方法,感興趣的可以點(diǎn)擊鏈接進(jìn)行查閱→《JS數(shù)組學(xué)習(xí)之迭代數(shù)組計(jì)算元素總和、將值連接成字符串》。這次我們繼續(xù)JavaScript數(shù)組的學(xué)習(xí),看看怎么遍歷數(shù)組,對(duì)數(shù)組中的每個(gè)元素進(jìn)行處理(例如值全部擴(kuò)大一倍),有需要的朋友可以學(xué)習(xí)了解一下~
遍歷數(shù)組,第一想到的方法就是使用for循環(huán)了,利用它我們可以很簡(jiǎn)單的將全部元素值都擴(kuò)大一倍(即乘以2)
var a = [5,10,20]; for(var i=0;i<a.length;i++){ a[i]=2*a[i]; } console.log(a);
輸出結(jié)果:
也可以使用for in語(yǔ)句來遍歷數(shù)組。在 for/in 循環(huán)結(jié)構(gòu)中,變量 i 表示數(shù)組的下標(biāo),而 a[i] 為可以讀取指定下標(biāo)的元素值。
var a = [10,20,30]; for(var i in a){ a[i]=2*a[i]; } console.log(a);
輸出結(jié)果:
也可以利用之前文章提到的forEach()方法來遍歷數(shù)組,該方法可以調(diào)用數(shù)組的每個(gè)元素,并將元素傳遞給回調(diào)函數(shù)。
var a = [20,30,40]; function f(value) { console.log(value*2); } a.forEach(f);
輸出結(jié)果:
還可以利用map()方法來遍歷數(shù)組,map()方法可以對(duì)數(shù)組的每個(gè)元素調(diào)用指定的回調(diào)函數(shù),并返回包含結(jié)果的數(shù)組。
array.map(function callbackfn (value, index, array), thisArg);
function callbackfn (value, index, array)
:一個(gè)回調(diào)函數(shù),最多可接受三個(gè)參數(shù):
-
value:數(shù)組元素的值。
-
index:數(shù)組元素的數(shù)字索引。
-
array:包含該元素的數(shù)組對(duì)象。
下面通過代碼示例來具體了解一下:
示例1:將全部元素值都擴(kuò)大一倍(即乘以2)
var a = [30,40,50]; function f(value) { return value*2; } var a1=a.map(f); console.log(a1);
輸出結(jié)果:
示例2:使用 JavaScript 內(nèi)置方法作為回調(diào)函數(shù)
var a = [9, 16]; var a1 = a.map(Math.sqrt); console.log(a1); //3,4
好了,就說到這里了,有需要的可以看:javascript視頻教程