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

如何向javascript对象的每个子数组添加一对新的(键、值)?

  •  0
  • PlayHardGoPro  · 技术社区  · 6 年前

    假设我有一个这样的JSON:

    {
       0: {
          id: "1",
          usr: "pimba"
       },
       1: {
          id: "2",
          usr: "aloha"
       },
       ...
       100: {
          id: "3",
          usr: "pruu"
       }
    }
    

    我需要为每个子数组添加一个新的(键,值)对。可以不用吗 foreach ?也许是某种已经对每个子数组应用了某种功能的函数?
    我需要在后面添加(key:value) usr: value .

    obs:在本例中,我要添加的集合(键、值)将始终相同。

    我需要的结果是:

    {
       0: {
          id: "1",
          usr: "pimba"
          synced: true
       },
       1: {
          id: "2",
          usr: "aloha"
          synced: true
       },
       ...
       100: {
          id: "3",
          usr: "pruu"
          synced: true
       }
    }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   tonkatata    6 年前

    这个怎么样:

    let a = {
        0: {
           id: "1",
           usr: "pimba"
        },
        1: {
           id: "2",
           usr: "aloha"
        },
        3: {
           id: "3",
           usr: "pruu"
        }
     }
    
     let b = Object.values(a).map(newKeyValue => {
        newKeyValue.newKey = "newValue"
        console.log(newKeyValue)
     })
    

    首先,你所说的“数组”实际上是一个“对象”。

    对象有两种非常酷的方法。

    Object.keys 返回对象的所有键的数组。

    Object.values 返回对象的所有值的数组。