如何过滤JavaScript中具有最低值的重复项

如何过滤JavaScript中具有最低值的重复项,javascript,arrays,json,Javascript,Arrays,Json,我有一个如下所示的对象数组,我需要删除所有具有最低价格值的重复项目,例如价格为“8”的项目“Book”应该被删除,因为它是最低的Book价格,我该怎么做 let array = [ { item: "Pen", price: 3 }, { item: "Book", price: 10 }, { item: "Pen", price: 6

我有一个如下所示的对象数组,我需要删除所有具有最低价格值的重复项目,例如价格为“8”的项目“Book”应该被删除,因为它是最低的Book价格,我该怎么做

let array = [
      {
        item: "Pen",
        price: 3
      },
      {
        item: "Book",
        price: 10
      },
      {
        item: "Pen",
        price: 6
      },
      {
        item: "Book",
        price: 8
      }
    ];
let数组=[{
项目:“笔”,
价格:3
},
{
项目:“书籍”,
价格:10
},
{
项目:“笔”,
价格:6
},
{
项目:“书籍”,
价格:8
}
];
//删除DUP
设grouped=array.reduce(函数(全部,下一个){
如果(所有[下一个项目]){
全部[next.item]。推送(next.price)
}否则{
所有[下一步.项目]=[下一步.价格]
}
全部归还
}, {})
//删除最小值
让结果=Object.keys(分组).map(函数(键){
返回{
项目:关键,
price:Math.max.apply(null,分组[key])
}
})

console.log(结果)
将项目减少为对象。对于每个项目,如果它在对象中不存在,或者它的价格高于对象中相同类型的当前项目,请使用
item
属性作为键将其添加到对象中。使用
Object.values()
将其转换回数组:

const数组=[{“item”:“Pen”,“price”:3},{“item”:“Book”,“price”:10},{“item”:“Pen”,“price”:6},{“item”:“Book”,“price”:8}]
const result=Object.values(array.reduce)(r,o)=>{
如果(!r[o.item]|o.price>r[o.item].price)r[o.item]=o
返回r
}, {}))

console.log(结果)
到目前为止的工作量?