代码之家  ›  专栏  ›  技术社区  ›  Muhammad Umer

像Js中的变量赋值一样,一次可以给object赋值多个值吗?

  •  2
  • Muhammad Umer  · 技术社区  · 7 年前

    可以做到:

    let a = 1,
        b = 3,
        c = 9;
    

    是否也可以:

    obj.a = 1,
        b = 2,
        c = 3;
    

    这仍然是非常可读的,但是很少打字,然后写作 obj

    4 回复  |  直到 7 年前
        1
  •  2
  •   CertainPerformance    7 年前

    如果变量已经定义,则可以使用速记特性名称一次性定义对象,而无需重复:

    const obj = { a, b, c };
    
        2
  •  2
  •   Code Maniac    7 年前

    您可以使用速记属性名来指定定义的变量

    let a = 1,
        b = 3,
        c = 9;
    
    let  obj = {a,b,c}
        
    console.log(obj)
        3
  •  1
  •   user2314737    7 年前

    map . 否则,可以用名称和值初始化对象。

    // function
    var obj = {};
    ['a', 'b', 'c'].map((x, i) => (obj[x] = i));
    console.log(obj);
    
    // no function
    var obj1 = {a: 1, b: 2, c: 4};
    console.log(obj1);
        4
  •  0
  •   Jack Bashford    7 年前

    Object.assign :

    const obj = Object.assign({}, { a: 1, b: 2, c: 3 });
    console.log(obj);

    否则,请使用ES6速记属性表示法:

    const [a, b, c] = [1, 2, 3];
    const obj = { a, b, c };
    console.log(obj);
        5
  •  0
  •   Muhammad Usman    7 年前

    您可以这样做(如果对象是可重新分配的,例如: let 不是 const ):

    obj = {...obj, a : 1,
        b : 2,
        c: 3,
    }
    

    谢谢:)