溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JS中數(shù)組與對(duì)象的遍歷方法實(shí)例小結(jié)

發(fā)布時(shí)間:2020-08-25 16:58:56 來源:腳本之家 閱讀:118 作者:sMoom 欄目:web開發(fā)

本文實(shí)例講述了JS中數(shù)組與對(duì)象的遍歷方法。分享給大家供大家參考,具體如下:

一、數(shù)組的遍歷:

首先定義一個(gè)數(shù)組

arr=['snow','bran','king','nightking'];

1、for循環(huán),需要知道數(shù)組的長(zhǎng)度;

2、foreach,沒有返回值,可以不知道數(shù)組長(zhǎng)度;

arr.forEach(function(ele,index){
console.log(index);
console.log(ele)
})

3、map函數(shù),遍歷數(shù)組每個(gè)元素,并回調(diào)操作,需要返回值,返回值組成新數(shù)組,原數(shù)組不變;

var newarr=arr.map(function(i){
  return "hello "+i
});
console.log(newarr)

4、filter函數(shù):過濾通過條件的元素組成一個(gè)新數(shù)組,原數(shù)組不變;

var newarr=arr.filter(function(i){
  return i == "bran"
});
console.log(newarr)

5、some函數(shù),遍歷數(shù)組中是否有符合條件的函數(shù),返回布爾值;

var yy=arr.some(function(i){
  return i.length>4
});
console.log(yy)       //true

6、every函數(shù),遍歷數(shù)組是否每個(gè)元素都符合條件,返回布爾值;

var xx=arr.every(function(i){
  return i.length>4
});
console.log(xx)       //false

7、reduce函數(shù),為數(shù)組中的每一個(gè)元素依次執(zhí)行回調(diào)函數(shù)

語法:

arr.reduce(callback, initialValue)

[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
 return previousValue + currentValue;
});

callback:執(zhí)行數(shù)組中每個(gè)值的函數(shù),包括四個(gè)參數(shù);

  • previousValue:上一次調(diào)用回調(diào)返回的值,或者是提供的初始值(initialValue);
  • currentValue:當(dāng)前被處理的值;
  • index:當(dāng)前元素在數(shù)組中的索引;
  • array:調(diào)用reduce的數(shù)組;
  • initialValue:作為第一次調(diào)用callback的第一個(gè)參數(shù);

例如:

var total = [0, 1, 2, 3].reduce(function(a, b) {
  return a + b;
});
// total == 6
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
  return a.concat(b);
});
// flattened is [0, 1, 2, 3, 4, 5]

要提供initialValue的話:

var total = [0, 1, 2, 3].reduce(function(a, b) {
   return a + b;
},4);
console.log(total); //10

二、對(duì)象的遍歷

var obj={snow:1,bran:2,king:3,nightking:4};
for(let i in obj){
  console.log(i+','+obj[i])
}

in也可以用來遍歷數(shù)組,不過i對(duì)應(yīng)于數(shù)組的key值:

for(let i in arr){
  console.log(i+','+arr[i])
}

PS:這里再為大家推薦一款JS數(shù)組遍歷方式分析對(duì)比工具供大家參考:

在線JS常見遍歷方式性能分析比較工具:http://tools.jb51.net/aideddesign/js_bianli

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《javascript面向?qū)ο笕腴T教程》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI