我只想要数组对象中的第一年和去年元素
例如,这是数据(它已排序,所以我只是不想搞乱):
[
{ make: 'audi', model: 'rs5', year: '2013' },
{ make: 'audi', model: 'rs5', year: '2015' },
{ make: 'audi', model: 'r8', year: '2020' },
{ make: 'ford', model: 'mustang', year: '2012' },
{ make: 'ford', model: 'fusion', year: '2015' },
{ make: 'ford', model: 'mustang', year: '2033' },
{ make: 'kia', model: 'optima', year: '2010' },
{ make: 'kia', model: 'optima', year: '2012' },
{ make: 'kia', model: 'optima', year: '2020' },
{ make: 'kia', model: 'optima', year: '2030' },
{ make: 'kia', model: 'optima', year: '2040' }
]
我希望像这样删除所有的中年:
[
{ make: 'audi', model: 'rs5', year: '2013' },
{ make: 'audi', model: 'r8', year: '2020' },
{ make: 'ford', model: 'mustang', year: '2012' },
{ make: 'ford', model: 'mustang', year: '2033' },
{ make: 'kia', model: 'optima', year: '2010' },
{ make: 'kia', model: 'optima', year: '2040' }
]
最佳答案
您可以通过 make 分隔数组,然后获取每个 make 的第一个和最后一个值:
const arr = [
{ make: 'audi', model: 'rs5', year: '2013' },
{ make: 'audi', model: 'rs5', year: '2015' },
{ make: 'audi', model: 'r8', year: '2020' },
{ make: 'ford', model: 'mustang', year: '2012' },
{ make: 'ford', model: 'fusion', year: '2015' },
{ make: 'ford', model: 'mustang', year: '2033' },
{ make: 'kia', model: 'optima', year: '2010' },
{ make: 'kia', model: 'optima', year: '2012' },
{ make: 'kia', model: 'optima', year: '2020' },
{ make: 'kia', model: 'optima', year: '2030' },
{ make: 'kia', model: 'optima', year: '2040' }
]
const grouped = arr.reduce((a, el) => (a[el.make] ? a[el.make].push(el) : a[el.make] = [el], a), {})
const out = Object.values(grouped).reduce((a, group) => (a.push(group[0], group[group.length - 1]), a), [])
console.log(out)
关于Javascript |从对象数组中删除不需要的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59877596/