考虑以下示例JSON数组:
[{
info: {
refOne: 'refOne',
refTwo: [{
refOne: 'refOne',
refTwo: 'refTwo'
}]
}
}, {
info: {
refOne: 'refOne',
refTwo: [{
refOne: 'refOne',
refTwo: 'refTwo'
}]
}
}]
上面的JSON是数据库查询响应的简单表示,Nodejs循环遍历每个' refTwo的正确方法是什么?父信息数组中的数组?
sudo示例: 对于样本JSON中的每个项目 对于当前项目中的每个refTwo项目 做点什么
我怀疑“async'这里可能需要lib,但非常感谢一些建议。
答案 0 :(得分:10)
这是一个简单的JavaScript问题:
var o = [...];
var fn = function (e){
e.refOne...
e.refTwo...
};
o.forEach (function (e){
e.info.refTwo.forEach (fn);
});
答案 1 :(得分:2)
您可以使用underscore或lodash以功能方式执行此操作。
例如,请查看Collections.each和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方法,不过我建议你看看下划线。