gpt4 book ai didi

javascript - 如何映射和减少对象数组?

转载 作者:行者123 更新时间:2023-12-03 03:40:51 25 4
gpt4 key购买 nike

如何从以下对象数组中计算价格:

const cars = [
{
price: 10000,
car: 'audi'
},
{
price: 10000,
car: 'audi'
},
{
price: 10000,
car: 'nissan'
},
{
price: 10000,
car: 'nissan'
},
{
price: 20000,
car: 'mazda'
},
{
price: 10000,
car: 'nissan'
},
];

这样我就可以获得一组对象,以及总价格:

const cars = [
{
price: 20000,
car: 'audi'
},
{
price: 30000,
car: 'nissan'
},
{
price: 20000,
car: 'mazda'
}
];

尝试映射数组,然后减少,但是如何保留结构,以便取回对象数组?这是不正确的:

 const newCarsArray = cars.map(item => {
return(
//cars.reduce ?
)
});

最佳答案

您可以将数组减少为由汽车键入的对象,保存总数,然后将其转换回您的格式非常简单

const cars = [{price: 10000, car: 'audi'},{price: 10000, car: 'audi'},{price: 10000, car: 'nissan'},{price: 10000, car: 'nissan'}, {price: 20000,        car: 'mazda'}, {price: 10000, car: 'nissan'}];

var map = cars.reduce((map, car) => {
map[car.car] = map[car.car] ? map[car.car] + car.price : car.price;
return map;
}, {});

console.log(map); // {audi: 20000, nissan: 30000, mazda: 20000}

var array = Object.keys(map).map( car => ({car: car, price: map[car]}));

console.log(array);

关于javascript - 如何映射和减少对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45637465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com