У меня есть массив объектов, таких как:
[{ value: 40,
username: 'Name 1',
id: 'high'
},
{ value: 30,
username: 'Name 2',
id: 'low',
},
{ value: 60,
username: 'Name 1',
id: 'low',
},
{ value: 50,
username: 'Name 2',
id: 'high'
}]
Я хочу сравнить объекты с тем же ключом username
и вернуть false, если у объекта есть свойство id: low
и его value
выше любого соответствующего объекта с id
, установленным на high
.
Так что для этого объекта будет возвращено false , поскольку третий объект имеет low
для своего идентификатора и он имеет более высокое значение, чем соответствующий объект с тем же именем пользователя с high
в его идентификаторе.
В настоящее время я фильтрую массив в два отдельных массива следующим образом.
const higherTest = test.filter(item => item.id === 'high');
const lowerTest = test.filter(item => item.id === 'low');
А затем сравните оба, используя вложенное для l oop, но это кажется чрезмерным, и мне интересно, есть ли более чистый способ?