代码之家  ›  专栏  ›  技术社区  ›  Joe

使用JavaScript迭代JSON[duplicate]

  •  0
  • Joe  · 技术社区  · 7 年前

    我有一个JavaScript对象,如下所示:

    var p = {
        "p1": "value1",
        "p2": "value2",
        "p3": "value3"
    };
    

    p 元素( p1 p2 , p3 ...) 并获取它们的键和值。我该怎么做?

    如果需要,我可以修改JavaScript对象。我的最终目标是循环一些键值对,如果可能的话,我希望避免使用 eval

    0 回复  |  直到 6 年前
        1
  •  8
  •   Akhil Ramani    5 年前

    for-in 循环,如其他人所示。但是,您还必须确保获得的密钥是对象的实际属性,而不是来自原型。

    var p = {
        "p1": "value1",
        "p2": "value2",
        "p3": "value3"
    };
    
    for (var key in p) {
        if (p.hasOwnProperty(key)) {
            console.log(key + " -> " + p[key]);
        }
    }

    对于对象。keys()选项:

    var p = {
        0: "value1",
        "b": "value2",
        key: "value3"
    };
    
    for (var key of Object.keys(p)) {
        console.log(key + " -> " + p[key])
    }

    注意使用 for-of 因为 ,如果未使用,它将返回命名属性上的未定义,以及 Object.keys()

    使用新的 Object.entries() 方法:

    注:

    const p = {
        "p1": "value1",
        "p2": "value2",
        "p3": "value3"
    };
    
    for (let [key, value] of Object.entries(p)) {
      console.log(`${key}: ${value}`);
    }