我有一个多维对象:
http://selenium:4444/wd/hub
如何在不知道任何属性名称或"维度数量的情况下遍历整个对象。在对象?
在SO上还有一些与该主题相关的问题:
Traverse through Javascript object properties
javascript traversing through an object
问题是两个答案都不是我想要的,因为:
a)第一个链接只遍历对象的第一层 b)第二个答案要求您知道对象密钥的名称。
答案 0 :(得分:3)
递归:
function doSomethingWithAValue(obj, callback) {
Object.keys(obj).forEach(function(key) {
var val = obj[key];
if (typeof val !== 'object') {
callback(val);
} else {
doSomethingWithAValue(val, callback);
}
});
}
答案 1 :(得分:0)
请考虑使用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: {} }
*/