所以我有一些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'),當把'我<長度' –