【问题标题】:Copy an value ( value is an object ) from an object to array is not working?将一个值(值是一个对象)从一个对象复制到数组不起作用?
【发布时间】:2021-03-06 07:10:18
【问题描述】:

我有这样的变量

    var rough = {
        JOHN : {
          date: "03-03-2021",
          name: "JOHN",
          Qty: 123,
          unit: "g"
        },
SEBASTIAN : {
          date: "03-03-2021",
          name: "SEBASTIAN",
          Qty: 456,
          unit: "g"
        }}

我想把它的格式改成

var lastyear = {
      data: [
        {
          date: "03-03-2021",
          name: "JOHN",
          Qty: 123,
          unit: "g"
        },{
          date: "03-03-2021",
          name: "SEBASTIAN",
          Qty: 456,
          unit: "g"
        }]

但我想复制值来更改格式。

【问题讨论】:

  • 抱歉,这一切正常,问题出在我的快递退货上。这是我的第一个问题,它的问题和解决方案工作正常,我应该删除这个问题。或者这个评论就够了

标签: javascript arrays object deep-copy


【解决方案1】:

快速方法是使用Object.values ({ data: Object.values(rough) })

var rough = {
  JOHN: {
    date: "03-03-2021",
    name: "JOHN",
    Qty: 123,
    unit: "g",
  },
  SEBASTIAN: {
    date: "03-03-2021",
    name: "SEBASTIAN",
    Qty: 456,
    unit: "g",
  },
};

lastyear = { data: Object.values(rough) };

console.log(lastyear)

【讨论】:

    【解决方案2】:

    您可以将reduceObject.entries 一起使用:

    const rough = { JOHN : { date: "03-03-2021", name: "JOHN", Qty: 123, unit: "g" },SEBASTIAN : { date: "03-03-2021", name: "SEBASTIAN", Qty: 456, unit: "g" }}
    
    const result = Object.entries(rough).reduce((a,[name, value])=>[...a,{...value,name}],[]);
    
    console.log(result);

    【讨论】:

    • 感谢您抽出宝贵时间,但我使用的解决方案本身是有效的。我只是为浪费您的时间而道歉
    【解决方案3】:

    而我用于..in

    var keys = Object.keys(rough);
        for (const data in rough){
          lastyear.data.push(rough[data]));
    }
    

    【讨论】:

      【解决方案4】:

      我只是按值复制到数组中。

      var keys = Object.keys(rough);
      keys.forEach((data) => {
      lastyear.data.push(Object.assign({}, rough[data]));
      }
      

      【讨论】:

        猜你喜欢
        • 2011-02-07
        • 1970-01-01
        • 2022-12-04
        • 2021-07-22
        • 1970-01-01
        • 2020-01-02
        • 1970-01-01
        • 1970-01-01
        • 2016-10-13
        相关资源
        最近更新 更多