如何以通用方式迭代嵌套对象

时间:2016-02-25 10:14:07

标签: javascript jquery underscore.js

我试图在不使用它的密钥的情况下获取嵌套对象的值。例如,如果我有像

这样的对象

var a = {"key" : "100"}

我不想使用a.key来获得结果,虽然我有嵌套对象,但是我很难获取这个值,这是我尝试过的:

var Obj = [{"ghi":{"content":"abc"}},{"def":{"imgURL":"test.png"}},{"abc":{"key":"001"}},{"ghi":{"content":"abc"}},{"def":{"imgURL":"test.png"}},{"abc":{"key":"001"}}]

for(var key in Obj){
 abc = Obj[key]
 for(var j in abc){
  def = abc[key]
 }
}

所以我需要所有对象的值,而不直接使用密钥。

1 个答案:

答案 0 :(得分:1)

也许这有帮助



function getValues(array, key) {
    var result = [];
    array.forEach(function (a) {
        a[key] && result.push(a[key]);
    });
    return result;
}

var array = [{ "ghi": { "content": "abc" } }, { "def": { "imgURL": "test.png" } }, { "abc": { "key": "001" } }, { "ghi": { "content": "abc" } }, { "def": { "imgURL": "test.png" } }, { "abc": { "key": "001" } }];

document.write('<pre>' + JSON.stringify(getValues(array, 'ghi'), 0, 4) + '</pre>');
&#13;
&#13;
&#13;