Nodejs -迭代嵌套JSON数组的正确方法

Nodejs - Correct way to iterate through nested JSON array

本文关键字:方法 数组 JSON 迭代 嵌套 Nodejs      更新时间:2023-09-26

考虑以下示例JSON数组:

[{
    info: {
        refOne: 'refOne',
        refTwo: [{
            refOne: 'refOne',
            refTwo: 'refTwo'
        }]
    }
}, {
    info: {
        refOne: 'refOne',
        refTwo: [{
            refOne: 'refOne',
            refTwo: 'refTwo'
        }]
    }
}]

上面的JSON是一个数据库查询响应的简单表示,在Nodejs中通过父info数组中的每个'refTwo'数组循环的正确方式是什么?

sudo的例子:示例JSON中的每个项目对于当前项中的每个refTwo项做一些

我怀疑这里可能需要'async'库,但非常感谢一些建议。

这是一个简单的javascript问题:

var o = [...];
var fn = function (e){
    e.refOne...
    e.refTwo...
};
o.forEach (function (e){
    e.info.refTwo.forEach (fn);
});

您可以使用下划线或lodash以功能方式完成。

例如,看看集合。and Collections.map:

var _ = require('underscore');
var result = // your json blob here
var myRefs = _.map(results, function(value, key) {
  return value.info.refTwo;
};
// myRefs contains the two arrays from results[0].info.refTwo from results[1].info.refTwo now
// Or with each:
_.each(results, function(value, key) {
  console.log(value.info.refTwo);
}
// Naturally you can nest, too:
_.each(results, function(value, key) {
  _.each(value.info.refTwo, function(innerValue) { // the key parameter is optional
    console.log(value);
  }
}

编辑:你当然可以使用Gabriel Llamas建议的forEach方法,但我还是建议你看看下划线。