【发布时间】:2021-02-26 21:35:56
【问题描述】:
我想将该数组的值按其car 分组
键,然后将该汽车的通用值推送到值数组中。
我设法做到了这一点,但想知道是否有更简单的方法来使用 reduce。
const arr = [{
car: 'audi',
value: 'black'
}, {
car: 'audi',
value: 'expensive'
}, {
car: 'fiat',
value: 'red'
}, {
car: 'fiat',
value: 'cheap'
}]
// Simple array with unique car
const cars = Array.from(new Set(arr.map(({ car }) => car)))
// Array of objects with unique `car` and an empty `values` array for each
const result = cars.map((car) => ({ car, values: [] }))
// Push to values array the `value` for each car
arr.map((obj) => {
result.map((res) => {
if (obj.car === res.car) {
res.values.push(obj.value)
}
})
})
console.log(result)
/*
[{
car: 'audi',
values: ['black', 'expensive']
}, {
car: 'fiat',
values: ['red', 'cheap']
}]
*/
【问题讨论】:
标签: javascript ecmascript-6 reduce ecmascript-5