将属性从子数组复制到主对象中

时间:2017-07-14 16:08:39

标签: javascript typescript ecmascript-6

我有一系列产品,比如

[ 
{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 }

3 个答案:

答案 0 :(得分:0)

使用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);




答案 1 :(得分:0)

试试这个。希望它有所帮助!

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);

答案 2 :(得分:-1)

使用地图。假设您的数组被称为对象。如果您的价格不合适,请使用sort。或者,如果您担心性能,可以循环查找最低值。

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

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