[英]Traverse through multi-dimentional object
我有一個多維對象:
var obj = {
prop: {
myVal: "blah",
otherVal: {
// lots of other properties
},
},
};
在不知道對象中的任何屬性名稱或“維度”數量的情況下,如何遍歷整個對象?
關於 SO 的其他幾個問題與該主題相關:
遍歷 Javascript 對象屬性
javascript遍歷一個對象
問題是這兩個答案都不是我想要的,因為:
a)第一個鏈接只遍歷對象中的第一層。
b)第二個答案要求您知道對象鍵的名稱。
遞歸:
function doSomethingWithAValue(obj, callback) {
Object.keys(obj).forEach(function(key) {
var val = obj[key];
if (typeof val !== 'object') {
callback(val);
} else {
doSomethingWithAValue(val, callback);
}
});
}
考慮使用object-scan 。 一旦你把頭環繞在它周圍,它對於數據處理來說是強大的。 以下是您如何以安全刪除的順序進行簡單的迭代:
// const objectScan = require('object-scan'); const obj = { prop: { myVal: 'blah', otherVal: { /* lots of other properties */ } } }; objectScan(['**'], { filterFn: ({ key, value }) => { console.log(key, value); } })(obj); // => [ 'prop', 'otherVal' ] {} // => [ 'prop', 'myVal' ] blah // => [ 'prop' ] { myVal: 'blah', otherVal: {} }
.as-console-wrapper {max-height: 100% !important; top: 0}
<script src="https://bundle.run/object-scan@13.8.0"></script>
免責聲明:我是對象掃描的作者
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.