在json数组(javascript)中检索具有相同id的对象

在json数组(javascript)中检索具有相同id的对象,javascript,arrays,json,Javascript,Arrays,Json,我想在我用javascript制作的json数组中检索具有相同id的对象 var Array = { "1": {"text": "Number one", "time": "16 03 13"}, "1": {"text": "Number two", "time": "14 03 13"}, "1": {"text": "Number three", "time": "13 03 13"}, "2": {"text": "Numb

我想在我用javascript制作的json数组中检索具有相同id的对象

var Array = {               
    "1": {"text": "Number one", "time": "16 03 13"},
    "1": {"text": "Number two", "time": "14 03 13"},
    "1": {"text": "Number three", "time": "13 03 13"},
    "2": {"text": "Number one", "time": "13 03 13"},
};
我试过这样做,但很明显,它只显示了第一个结果(第一)

我想到了一个循环,我能做什么?

  • 不要将
    数组
    用作变量名
  • 对象键不能重复。如果您这样做,则只将最新的条目提供给该键。其他的都被丢弃了。在您的情况下,只有第三个“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);
  }
}
var myArray=[
{“id”:1,“text”:“Number one”,“time”:“16 03 13”},//索引0
{“id”:1,“text”:“Number 2”,“time”:“14 03 13”},//索引1
{“id”:1,“text”:“Number 3”,“time”:“13 03 13”},//索引2
{“id”:2,“text”:“Number one”,“time”:“13 03 13”}//索引3
];
var i;

对于(i=0;iAn ID(或密钥)本质上应该是唯一的,这就是它所做的,它标识了一些东西…感谢您的快速回复,但这样,我无法获取任何ID。例如,如果我只想获取ID为1的文本,有没有简单的方法可以做到这一点?
{“text”:“Number one”,“ID”:“1”},{“text”:“Number 2”,“ID”:“1”},{“text”:“Number three”,“id”:“1”},{“text”:“Number one”,“id”:“2”}
我可以用这种方式只显示id 1吗?@Alberto updated。每个都会得到一个条目的相应文本。很多方法,谢谢你的示例,你真是太好了……现在我知道如何显示一个数组值,但我如何显示每个“text”id为1?不仅是第一个或第二个;每个文本id为1。@Alberto使用上述任何一个,您可以执行循环。
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);
  }
}
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);
}
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);
}