- 請勿使用
Array
作爲變量名稱。
- 對象鍵不能重複。如果你這樣做,只有最新的條目被送到該鍵。其他人被丟棄。在你的情況下,只有第三個「1」可以通過「1」鍵進入。
- 你需要的是一個數組,而不是對象
你需要這樣的:
var myArray = [
{"id" : 1, "text": "Number one", "time": "16 03 13"}, //index 0
{"id" : 1, "text": "Number two", "time": "14 03 13"}, //index 1
{"id" : 1, "text": "Number three", "time": "13 03 13"}, //index 2
{"id" : 2, "text": "Number one", "time": "13 03 13"} //index 3
];
var i;
for(i=0;i<myArray.length;i++){
if(myArray[i].id === 1){
console.log(myArray[i].text);
}
}
這裏的另一種方法,這需要重組數據。如果您的ID爲1的條目具有多個值,則可以在每個鍵下面放置一個數組。
var myArray = {
"1" : [
{"text": "Number one", "time": "16 03 13"}, //index 0
{"text": "Number two", "time": "14 03 13"}, //index 1
{"text": "Number three", "time": "13 03 13"} //index 2
],
"2" : [
{"text": "Number one", "time": "13 03 13"} //index 0
]
};
var ones = myArray['1'];
for(i=0;i<ones.length;i++){
console.log(ones[i].text);
}
另一種方法是使用Array.prototype.filter
var myArray = [
{"id" : 1, "text": "Number one", "time": "16 03 13"}, //index 0
{"id" : 1, "text": "Number two", "time": "14 03 13"}, //index 1
{"id" : 1, "text": "Number three", "time": "13 03 13"}, //index 2
{"id" : 2, "text": "Number one", "time": "13 03 13"} //index 3
];
//create an array containing only those with id of 1
var filtered = myArray.filter(function(val,i,arr){
return val.id === 1;
});
for(i=0;i<filtered.length;i++){
console.log(filtered[i].text);
}
大自然的ID(或鍵)應該是唯一的,這就是它,它** **標識的東西... – elclanrs 2013-03-16 11:09:10