代码之家  ›  专栏  ›  技术社区  ›  Nikhil Savaliya

使用最佳方式更新现有对象值[复制]

  •  -1
  • Nikhil Savaliya  · 技术社区  · 7 年前

    我想用一些预定义的值来更新我的对象值,比如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 )
    
    3 回复  |  直到 7 年前
        1
  •  0
  •   Ankit Agarwal    7 年前

    将这些值乘以 5 :

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

    使用

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

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

    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)
        3
  •  0
  •   Mamun    7 年前

    试试看 Object.entries() :

    这个 对象.条目() 方法返回给定对象自己的可枚举属性[key,value]对的数组,其顺序与 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)