js中我最常用的幾種遍歷處理資料的方法梳理
https://blog.csdn.net/wanwan5856/article/details/79618024
forEach,Object.keys,map,for in ,for of,reduce,every
1,forEach 用於遍歷【陣列】
data.forEach(( item, index ) => {
console.log('元素:', item ,';下標:', index)
})
2, Object.keys() 和 forEach() 結合遍歷【物件】
Object.keys返回一個陣列,陣列元素是輸入物件所有的鍵名的集合
Object.keys(testData).forEach((key)=>{
console.log(key) //鍵
console.log(testData[key]) //值
})
注意:Object.keys出來的順序不一定是物件屬性原來的順序,順序和for..in相同。
另外Object.keys還有一個妙用就是獲取物件的長度,在js中陣列長度可用length得到,物件長度用length獲取的結果是undefined,使用Object.keys(obj).length就可以得到物件長度了。
3,for...of (es6)用於遍歷【陣列】內的【元素】,不包括原型屬性和索引名
let myArray = [1,2,4,11,6,7]
for (let value of myArray) {
console.log(value) //一次輸出元素1、2、4、11、6、7
}
4,for...in (es5)用於遍歷【物件/陣列】內的【鍵名】,包括原型屬性 (所以慎用!)
let myArray = ['a',123,{a:'1',b:'2'}] //或為物件myArray = {a:'1',b:'2'}
for(let index in myArray){
console.log(index,myArray[index]) //輸出鍵名 和 元素值
}
注意1:for..in會把某個型別的原型(prototype)中的方法與屬性遍歷出來,用程式碼解釋如下:
let obj = {a: {aa: '123', b: {1,2,3} } }
Object.prototype.test = () => { console.log('123') }
for (let value in obj) {
console.log(value) //a, b, test
}
不想遍歷原型方法和屬性的話,可以在迴圈內部使用hasOwnPropery方法可以判斷某屬性是否是該物件的例項屬性
if(!array.hasOwnProperty(i)){
continue;
}
注意2:for..in遍歷物件{}時出來的順序不一定是物件屬性原來的順序,順序和Object.keys相同。
5,map 用於遍歷【陣列】產生一個新的元素值,返回一個新陣列為這些新值的集合
6,reduce 用於遍歷【陣列】進行累計計算,返回結果是一個計算後最終的值
其實玩法很多,完整引數如下:
myArray.reduce((countOrFirst,curr,currindex,arr) => {
console.log('第一個值/上次計算結果',countOrFirst, '當前要計算的值',curr, '當前元素的索引',currindex)
console.log('當前元素所屬的陣列物件',arr)
return countOrFirst + curr
}, firstValue)
7,every 用於遍歷【陣列】並且為陣列元素呼叫callbackfn,返回結果是boolean值
當每一次callbackfn返回true時every返回true,否則false
相關文章
- JS遍歷物件的幾種方法JS物件
- js資料處理——遍歷JS
- JavaScript中遍歷的幾種方法JavaScript
- 遍歷方法 js jquery 我 常用JSjQuery
- Python遍歷資料夾常用的兩種方法!Python
- 遍歷資料夾的幾種方式
- 簡單瞭解JS中的幾種遍歷JS
- 遍歷陣列的幾種方法陣列
- JS中陣列的遍歷方法(3種)JS陣列
- React中兩種遍歷資料的方法(map、forEach)React
- jquery中each的三種遍歷方法jQuery
- java中遍歷Map的4種方法Java
- JS中的遍歷JS
- 判斷js中的資料型別的幾種方法JS資料型別
- 【Java中遍歷Map物件的4種方法】Java物件
- JavaScript中的12種迴圈遍歷方法JavaScript
- C#中遍歷TreeView的兩個常用方法C#View
- js遍歷多重json的方法JSON
- C++ Vector遍歷的幾種方式()C++
- OC中陣列、字典的遍歷的三種方法陣列
- Java中如何遍歷Map物件的4種方法Java物件
- 在PHP中陣列遍歷的三種方法PHP陣列
- JMeter中對於Json資料的處理方法JMeterJSON
- js中建立物件的幾種常用方式JS物件
- iOS開發中陣列常用的五種遍歷方式iOS陣列
- java 遍歷map 方法 集合 五種的方法Java
- Java中Map的遍歷方法Java
- JS資料型別判斷的幾種方法JS資料型別
- JS中陣列與物件的遍歷方法例項JS陣列物件
- 非平衡資料集的機器學習常用處理方法機器學習
- ios 遍歷陣列的八種方法iOS陣列
- JS常用判斷空對像的幾種方法JS
- 二叉樹(BST)中序遍歷的三種方法二叉樹
- js的map遍歷和array遍歷JS
- a 標籤中呼叫js的幾種方法JS
- php陣列中常用的多種遍歷方式PHP陣列
- Java遍歷資料夾的兩種方法(非遞迴和遞迴)Java遞迴
- JS遍歷物件屬性的7種方式JS物件