如何从此对象检索值

时间:2014-11-02 19:29:23

标签: javascript arrays object javascript-objects

我有以下对象(称为message_tags):

{
  "88": [
    {
      "id":"864794113531613",
      "name":"Luis Angel Rodriguez",
      "type":"user",
      "offset":88,
      "length":20
    }
  ],
  "112": [
    {
      "id":"640891773501",
      "name":"Carl Champion Jr.",
      "type":"user",
      "offset":112,
      "length":17
    }
  ]
} 

我可以使用以下内容从中获取值:

var id = message_tags[88][0].id

但是它说88112总是不同的数字,我唯一可以告诉它的数字就是获取偏移量,当然如果进一步在对象内部

如何在不知道这些数字是什么的情况下迭代这个对象? (不能使用message_tags[0],因为它返回 undefined

2 个答案:

答案 0 :(得分:1)

您可以像这样迭代对象:

for (var thisKey in message_tags) { 
  if (message_tags.hasOwnProperty(thisKey)) {
    console.log(thisKey);
    console.log(message_tags[thisKey]);
  }
}

如果您100%确定原型链是干净的,您可以省略hasOwnProperty()检查。如果你不知道手段是什么,一定要把它留在里面。

答案 1 :(得分:1)

试试这个:

obj = {
  "88": [
    {
      "id":"864794113531613",
      "name":"Luis Angel Rodriguez",
      "type":"user",
      "offset":88,
      "length":20
    }
  ],
  "112": [
    {
      "id":"640891773501",
      "name":"Carl Champion Jr.",
      "type":"user",
      "offset":112,
      "length":17
    }
  ]
}

for (var key in obj) {
  if (obj.hasOwnProperty(key)) {
    alert(key + " -> " + obj[key]);
  }
}