位奇怪的一個。我正在使用下面的代碼從json對象構建一個數組,以便稍後在代碼中進行引用。然而,看起來,當創建每個數組的最後一個項目時,而不是添加一個新項目時,該項目的密鑰顯示爲數組的長度。JavaScript數組中顯示爲長度的最後一個鍵?
perfsJson = $.parseJSON(result);
var extras = new Array();
for (var i = perfsJson.length - 1; i >= 0; i--) {
var obj = perfsJson[i];
if (obj != null) {
if (obj.Extras != null) {
for (var perf_no in obj.Extras) {
if (extras[perf_no] == undefined) {
var arr = new Array();
for (var extra in obj.Extras[perf_no]) {
if (arr[extra] == undefined) {
arr[extra] = obj.Extras[perf_no][extra];
}
}
extras[perf_no] = arr;
}
}
break;
}
}
}
結果數組出現如下:
任何想法是怎麼回事?
編輯:下面的JSON 樣品
{ 「其他」:{ 「32516」:{ 「24186」: 「實施例文本」}, 「32515」:{ 「24186」: 「實施例文本」} 「32514」:{「24186」:「示例文本」},「32512」:{「24186」:「示例文本」},「32513」:{「24186」:「示例文本」},「32511」: 「32518」:{「24186」:「示例文本」},「32509」:{「24186」:「示例文本」},「32507」:{「24186」 「示例文本」},「32503」:{「24186」:「示例文本」},「32506」:{「24186」:「示例文本」},「32505」:{「24186」:「示例文本」} ,「32508」:{「24186」:「示例文本」},「32502」:{},「32497」:{}}}
您通常應該儘量避免在Javascript數組中丟失鍵。如果您需要使用特定的鍵,則需要使用對象或「Map」。 – lonesomeday
看起來你正在使用'for ... in'in數組循環,並且你也獲得了'length'。 – adeneo
代碼看起來像JS版本的https://twitter.com/dr4goonis/status/476617165463105536 – Pavlo