【问题标题】:Updating existing object values using best way [duplicate]使用最佳方式更新现有对象值[重复]
【发布时间】:2018-12-03 07:06:07
【问题描述】:

我想用一些预定义的值(例如 5)更新我的对象值。

这是我的对象,

let data = {"a":1,"b":2,"c":3,"d":5}

预期输出;

let data = {"a":5,"b":10,"c":15,"d":25}

这是我的尝试:

Object.keys(data).map(key => data[key] *= 5 )

【问题讨论】:

标签: javascript arrays json object


【解决方案1】:

只需遍历所有新对象的键并将其更新为现有对象。

var obj = {"a":1,"b":2,"c":3,"d":5,"f":9,"g":11,"h":21}

var newObj = {"a":5,"b":10,"d":20,"h":25}

let keys = Object.keys(newObj)

keys.map(x=>{
  obj[x] =  newObj[x]
})

console.log(obj)

【讨论】:

    【解决方案2】:

    试试Object.entries():

    Object.entries() 方法返回给定对象自己的可枚举属性 [key, value] 对的数组,其顺序与 for...in 循环提供的顺序相同(区别在于 for-in 循环枚举属性在原型链中也是如此)。

    let data = {"a":1,"b":2,"c":3,"d":5}
    data = Object.entries(data).map(k => ({[k[0]]: k[1] * 5}))
    
    console.log(data)

    【讨论】:

      【解决方案3】:

      将该值与5 相乘:

      let data = {"a":1,"b":2,"c":3,"d":5};
      Object.keys(data).forEach(key => data[key] *= 5);
      console.log(data);

      使用 Object.Entries()

      let data = {"a":1,"b":2,"c":3,"d":5};
      Object.entries(data).forEach(([key, val]) => data[key] = val*5);
      console.log(data);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-25
        相关资源
        最近更新 更多