【问题标题】:How to retrieve values from this object [duplicate]如何从此对象中检索值[重复]
【发布时间】:2014-11-02 19:29:22
【问题描述】:

我有以下对象(称为 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

【问题讨论】:

    标签: javascript arrays object javascript-objects


    【解决方案1】:

    你可以像这样遍历对象:

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

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

    【讨论】:

    • 太好了,谢谢!
    【解决方案2】:

    试试这个:

    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]);
      }
    }
    

    【讨论】:

    • 太好了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多