Javascript 迭代嵌套的JSON对象并将数据附加到变量
我对JS非常陌生,我在迭代嵌套JSON对象方面有点困难 我需要在Javascript 迭代嵌套的JSON对象并将数据附加到变量,javascript,lodash,Javascript,Lodash,我对JS非常陌生,我在迭代嵌套JSON对象方面有点困难 我需要在history中获取每个嵌套的Node\u Subtask\u Success的值,并将其保存到一个变量中,以便稍后访问 该数据集相当大,因此我不会将其直接添加到本文中,但我已将其上载到pastebin: 到目前为止,我所尝试的: updateData: function() { axios .get('http://localhost/api/node/839b655
history
中获取每个嵌套的Node\u Subtask\u Success
的值,并将其保存到一个变量中,以便稍后访问
该数据集相当大,因此我不会将其直接添加到本文中,但我已将其上载到pastebin:
到目前为止,我所尝试的:
updateData: function() {
axios
.get('http://localhost/api/node/839b6556940b19cf9651d0ff7ed08c1154d42b8ef2ef0bda92ffd188d9c82aa0600504389a10f54429c6f83d8cfd58c3e9be1598a4592f37ddd8cd3b3adb9cba')
.then((response) => {
_.each(response.data, function(node) {
for(var num in response.data.history) {
console.log(num.Node_Subtask_Success)
}
});
})
},
但是上面只打印了269次未定义的数据。您希望迭代
历史记录
数组,所以您应该这样做,而且只能这样做。这里不需要多次迭代
updateData:function(){
axios
.get('http://localhost/api/node/839b6556940b19cf9651d0ff7ed08c1154d42b8ef2ef0bda92ffd188d9c82aa0600504389a10f54429c6f83d8cfd58c3e9be1598a4592f37ddd8cd3b3adb9cba')
。然后((响应)=>{
_.每个(响应、数据、历史记录、功能(节点){
console.log(num.Node\u子任务\u成功)
});
})
},
如果您想使用vanilla JavaScript执行此操作:
updateData:function(){
axios
.get('http://localhost/api/node/839b6556940b19cf9651d0ff7ed08c1154d42b8ef2ef0bda92ffd188d9c82aa0600504389a10f54429c6f83d8cfd58c3e9be1598a4592f37ddd8cd3b3adb9cba')
。然后((响应)=>{
for(响应中的hist.data.history){
console.log(历史节点\子任务\成功)
});
})
},
这背后的原因将以这种方式提取属性名称:
for…in
语句遍历由字符串设置键控的对象的所有可枚举属性(忽略由符号设置键控的属性),包括继承的可枚举属性
您可以做些什么:
const历史=[
{
“id”:539,
“节点_核心”:1,
“节点子任务成功”:856,
}
];
历史。forEach(e=>{
日志(例如节点\子任务\成功);
});代码>首先,您似乎在做一个循环中的一个循环<代码>\每个
()迭代一个数组。您迭代response.data
,它是一个对象,而不是数组
您应该迭代response.data.history
。像这样
updateData: function() {
axios.get('http://localhost/api/node/839b6556940b19cf9651d0ff7ed08c1154d42b8ef2ef0bda92ffd188d9c82aa0600504389a10f54429c6f83d8cfd58c3e9be1598a4592f37ddd8cd3b3adb9cba')
.then((response) => {
_.each(response.data.history, (historyElement) => {
//your element here
console.log(historyElement.Node_Subtask_Success)
});
};