【问题标题】:Assign multiple values to keys of objects为对象的键分配多个值
【发布时间】:2020-10-01 14:51:45
【问题描述】:

我必须向一个对象添加多个键值对。

我有一个名为 hello 的对象。

我知道我必须这样做才能将键值对添加到 hello

hello['a'] = 1;
hello['b'] = 2;
hello['c'] = 3;

结果将是hello = {'a':1, 'b':2, 'c':3}

我知道我们可以这样做来声明变量:

让 [a,b,c] = [1,2,3];

在这种情况下a=1, b=2, c=3

有没有像声明变量这样简单的方法来为对象添加键值对?

我知道这是一个错误:

hello['a', 'b', 'c'] = [1,2,3]

是否有一种单行方式可以将键值对添加到对象?

【问题讨论】:

  • 喜欢Object.assign(hello, {'a':1, 'b':2, 'c':3});?
  • hello['a'] = 1;hello['b'] = 2;hello['c'] = 3; 是一行
  • @Thomas,这行得通,你能把它添加为答案吗,我可以选择它

标签: javascript jquery ecmascript-6


【解决方案1】:

你可以这样做:

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

请注意,这会在 hello 上创建一个新的对象引用

【讨论】:

    【解决方案2】:

    你可以对对象使用破坏性赋值

    const hello = {}
    hello["a"] = 1
    hello["b"] = 2
    hello["c"] = 3
    
    const { a, b, c } = hello
    
    console.log(a, b, c)

    或者对数组使用析构赋值,前提是您使用Object.values 从该对象中获取值数组

    const hello = {}
    hello["a"] = 1
    hello["b"] = 2
    hello["c"] = 3
    
    const [a, b, c] = Object.values(hello)
    
    console.log(a, b, c)

    【讨论】:

    • 您刚刚指定了与问题要求相反的内容。
    【解决方案3】:

    如果你可以使用 jQuery(因为你添加了 jQuery 标签),那么就可以了:

    $.extend(hello, {a:1, b:2, c:3})
    

    【讨论】:

      猜你喜欢
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      相关资源
      最近更新 更多