【问题标题】:How to assign multiple values to a JavaScript object?如何为 JavaScript 对象分配多个值?
【发布时间】:2014-04-02 07:50:46
【问题描述】:

假设我有一个具有如下键/值对的对象:

var someVar = {
    color: "white",
    font_size: "30px",
    font_weight: "normal"
...some more variables and functions
};

有没有办法对这些键进行多重分配,而不必这样做:

someVar.color = "blue";
someVar.font_size = "30px";
...

【问题讨论】:

标签: javascript object key-value


【解决方案1】:

使用 ES2015 你可以使用Object.assign:

const someVar = {
    color: "white",
    font_size: "30px",
    font_weight: "normal"
};

const newVar = Object.assign({}, someVar, { 
    color: "blue", 
    font_size: "30px"});

console.log(newVar);

=>

{
    color: "blue",
    font_size: "30px",
    font_weight: "normal"
}

【讨论】:

    【解决方案2】:

    使用 ES6 扩展运算符:

    someVar = {...someVar, color: "blue", font_size: "30px"}
    

    【讨论】:

      【解决方案3】:

      你可以遍历另一个对象:

      var thingsToAdd = {
          color: "blue",
          font_size: "30px"
      };
      for (var x in thingsToAdd) someVar[x] = thingsToAdd[x];
      

      或者,您可以使用with警告:这几乎是一个的主意!请参阅链接。我只是出于教育目的发布此内容;您几乎应该永远在生产代码中使用with!):

      with (someVar) {
          color = "blue";
          font_size = "30px";
      }
      

      【讨论】:

      • 成功了! @Dalius 首先提到了类似的东西,但我会把它给你,因为你提到了“with”。
      【解决方案4】:

      我会使用对象构造函数。 看起来像这样:

      function someVar (color,fontSize, fontWeight){
          this.color = color,
          this.fontSize = fontSize,
          this.fontWeight = fontWeight
      };
      var var1 = new someVar("red","12px","45px");
      

      【讨论】:

        【解决方案5】:
        var myvar ={};
        myvar['color']='red';
        myvar['width'] ='100px';
        alert(myvar.color);
        

        alert(myvar['color']);

        【讨论】:

        • OP 特别要求一种比单独设置每个属性更好的方法。
        • 这是关于key的动态赋值,就像key是var col = 'color'; myvar[col] = 'red';这样的任意变量
        猜你喜欢
        • 2014-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-12
        • 2019-08-07
        • 2017-11-21
        • 2019-06-16
        相关资源
        最近更新 更多