【问题标题】:copying a property from child array into main object将属性从子数组复制到主对象
【发布时间】:2017-07-14 16:08:39
【问题描述】:

我有一系列产品,例如

[ 
{name:'Test1', id:1, prices: [ 20,25,30 ] },
{name:'Test2', id:2, prices: [ 21,26,31 ] },
...
]

每个product 都有一个prices 数组,具体取决于产品sizes。 我想在每个对象中自动创建一个新属性,它从相应的数组中获取第一个价格并写入product 对象

喜欢

{name:'Test1', id:1, prices: [ 20,25,30 ], pr: 20 }

【问题讨论】:

  • 酷。你试过什么了?因为这是一件很容易做到的事情,我们很乐意帮助您编写您编写的代码,并且您认为应该可以解决问题,但不能正常工作。但是,为了让我们这样做,您首先需要拥有一些代码。

标签: javascript typescript ecmascript-6


【解决方案1】:

使用Array#map

const a = [ 
    {name:'Test1', id:1, prices: [ 20,25,30 ] },
    {name:'Test2', id:2, prices: [ 21,26,31 ] },
];

const newArr = a.map(item => {
    item.pr = item.prices[0]
    return item;
});


console.log(newArr);

【讨论】:

    【解决方案2】:

    试试这个。希望对您有所帮助!

    var array = [ 
        {name:'Test1', id:1, prices: [ 20,25,30 ] },
        {name:'Test2', id:2, prices: [ 21,26,31 ] }
    ];
    for(var i = 0; i < array.length; i++) {
        array[i].pr = array[i].prices[0];
    }
    console.log(array);
    

    【讨论】:

      【解决方案3】:

      使用地图。假设您的数组称为对象。如果您的价格不正常,请使用排序。或者,如果您担心性能,您可以遍历并找到最低值。

      objects = objects.map((obj) => {
          obj.pr = obj.prices.sort()[0];
          return obj;
      })
      

      小提琴链接:https://jsfiddle.net/tardycorgi9917/7d417wdL/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多