【问题标题】:javascript add array as value to object [duplicate]javascript将数组作为值添加到对象[重复]
【发布时间】:2019-03-12 14:38:23
【问题描述】:

我有一个值看起来像这样的数组

myarray= [1,2,3,4,5,6]

我有一个对象,其中已经有不同的对象

myobject ={
  key1: value1,
  key2: value2,
  key3: value3
}

我想将我的数组添加到这个对象中,并给它一个键文本作为“数字”,看起来像这样

myobject ={
  key1: value1,
  key2: value2,
  key3: value3
  numbers: [1,2,3,4,5,6]
}

我试过了

Object.assign(myobject, myarray);

但结果是这样的

{
  0:1,
  1:2,
  2:3,
  3:4,
  4:5,
  key1: value1,
  key2: value2,
  key3: value3
 }

【问题讨论】:

  • 你只需要编码:myobject.numbers = myarray如果你想使用Object.assign你应该编码:Object.assign(myobject, { numbers: myarray })
  • numbers = [1,2,3,4]; Object.assign(myobject, {numbers});
  • 您应该了解Object.assign 的作用。简而言之,它将属性从源对象复制到目标对象。

标签: javascript


【解决方案1】:

您可以像分配任何其他值一样分配它: myobject.numbers = myarray.

【讨论】:

    【解决方案2】:

    为什么不这样添加:myobject["numbers"] = myarray;

    let myarray= [1,2,3,4,5,6];
    
    let myobject ={
      key1: 1,
      key2: 2,
      key3: 3
    }
    
    console.log(myarray);
    console.log(myobject);
    
    myobject["numbers"] = myarray;
    console.log(myobject);

    【讨论】:

    • Lijo - 我猜它是 6 种方式,6 种另一种方式,但是将对象属性声明为关联数组(恕我直言)并不是很好的面向对象编程。 JavaScript 是带有样式的狂野西部,但是……无论如何。只是我的意见。
    • @ S. Overflow 同意 - 我提出了一个更简单的版本,而不是对 Object.Assign 感到困惑
    【解决方案3】:

    很确定这几乎是微不足道的,是吗?你想为你的对象添加另一个属性,所以只需声明它:

    var numbers = [1,2,3,4,5]
    var myobject ={
       key1: 'test',
      key2: 'test2',
      key3: 'test3'
    }
    
    myobject.numbers = numbers;
    

    【讨论】:

      猜你喜欢
      • 2022-12-28
      • 2022-01-05
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多