所以我有一些JSON数据,我试图解析。 'id:2'是'like-count'的等效动作ID。出于测试目的,我设置的“post.actions_summary”到阵列,休息;不结束循环
post.actions_summary.push({id: 5, count: 2}, {id: 6, count: 2}, {id: 2, count: 10}, {id: 10, count: 10});
的代码应该通过此阵列来解析低于:
for (i = 0; i < post.actions_summary.length; i++) {
action = post.actions_summary[i];
if (action.id === 2) {
aID = action.id;
aCOUNT = action.count;
post.actions_summary = [];
post.actions_summary.push({id: aID, count: aCOUNT});
break;
} else {
post.actions_summary = [];
post.actions_summary.push({id: 2, count: -1});
}
}
然而,检查的值时'post.actions_summary',我不断收到一个数组,其中包含'id:2,count:-1'。我也尝试过使用'.some'(返回false)和'.every'(返回true),但这也不起作用。
'post.actions_summary'的正确值应该是{id:2,count:10}。
使用'console.log(JSON.stringify(a );'看看每个迭代在做什么 –
当我把你的代码放在'action ='的下面,if循环之前,web控制台返回的是: {“id”:5, “count”:2} | 1 | post.actions_summary | [Object count:1id:2__proto__:Object] –
我实际上认为我可能知道......在第一个ELSE语句之后,'.length'基本上为0,这样循环在第一次迭代时终止。我应该尝试为.length设置一个变量来保存实际值。现在测试。 现在我得到一个错误(Uncaught TypeError:无法读取未定义(...)的属性'id'),当把'我<长度' –