我有一些JSON对象数组中的数据.我正在尝试使用嵌套的forEach循环来提取数据.
数据的建模类似于belo.dataModels中有多个dataModel和多个childNodes.
//this is what an example data looks like
dataModels[0].childNodes[0].appId
Run Code Online (Sandbox Code Playgroud)
我想尝试做以下事情:
dataModels.forEach(function(entry){
entry.forEach(function(childrenEntry){
console.log(childrenEntry.appId);
})
})
Run Code Online (Sandbox Code Playgroud)
但上面的方法不起作用,它给我一个错误,说"入口"不是一个功能.有没有更好的方法来实现我想要做的事情?
Gil*_*esC 10
您不是针对entry对象内的数组,您需要遍历该childNodes属性以获得所需的数据。请参阅下面的示例。
var dataModels = [];
dataModels[0] = {
childNodes: []
};
dataModels[0].childNodes[0] = {
appId: "foo"
};
dataModels.forEach(function(entry){
entry.childNodes.forEach(function(childrenEntry) { // was missing a )
console.log(childrenEntry.appId);
});
});
Run Code Online (Sandbox Code Playgroud)
小智 7
嵌套 foreach 确实是一种不好的做法。取而代之的是,您可以使用 map() 函数来获取数据。
假设一个对象数组是这样的 & 现在这里如何使用 map 而不是多个 foreach();
data = [{
dataModels: [{
childNodes: {
appId: 'foo'
}
}]
}];
data.forEach(function(obj) {
var res = obj.dataModels.map(function(o) {
return o.childNodes;
});
console.log(res[0]);
});Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32399 次 |
| 最近记录: |