filtering duplicated items from array

PHOTO EMBED

Fri Sep 09 2022 23:32:11 GMT+0000 (Coordinated Universal Time)

Saved by @elias #javascript

// all items 
var arr = [
  {id: 'a1', value: 1}, 
  {id: 'a2', value: 2}, 
  {id: 'a3', value: 2}, 
  {id: 'b1', value: 1}, 
  {id: 'a1', value: 2},  
  {id: 'a2', value: 3}
]

var filtered = []

// We want mantain the duplicated item with highest value
arr.forEach( item => {
  const some = arr.find(x => {if (x.id === item.id && x.value > item.value && !duplicated.includes(x)) {return x}})
	 
	if (some) {
		duplicated.push(some)
	} else if (!duplicated.includes(item)) {
    duplicated.push(item)
  }
})

console.log(filtered)
// [
//   {id: 'a1', value: 2}, 
//   {id: 'a2', value: 3}, 
//   {id: 'a3', value: 2}, 
//   {id: 'b1', value: 1}
// ]
content_copyCOPY