遍历多维物体

时间:2016-02-26 21:28:17

标签: javascript javascript-objects

我有一个多维对象:

http://selenium:4444/wd/hub

如何在不知道任何属性名称或"维度数量的情况下遍历整个对象。在对象?

在SO上还有一些与该主题相关的问题:

Traverse through Javascript object properties
javascript traversing through an object

问题是两个答案都不是我想要的,因为:

a)第一个链接只遍历对象的第一层 b)第二个答案要求您知道对象密钥的名称。

2 个答案:

答案 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: {} }
*/