У меня есть массив в следующем формате, в котором каждый уникальный «Поставщик» уже упорядочен (с использованием запроса sql) переменной «Total_Weight» в порядке убывания. [{Поставщик: 'AAA', ...

0
user3447653 5 Апр 2021 в 22:06

1 ответ

Лучший ответ

Вы можете просто использовать reduce здесь, чтобы получить список только с первым элементом для каждого поставщика:

const data = [{ Vendor: 'AAA', id: 'FOR', Total_Weight: 61156 },
{ Vendor: 'AAA', id: 'LOC', Total_Weight: 32322 },
{ Vendor: 'BBB', id: 'LOC1', Total_Weight: 3145 },
{ Vendor: 'BBB', id: 'LOC2', Total_Weight: 11 }];

const result = data.reduce((allEntries, currentEntry) => allEntries.some(entry => entry.Vendor === currentEntry.Vendor) // if there already is an entry for the given vendor...
   ? allEntries // don't add the current entry to the list
   : [...allEntries, currentEntry], // otherwise, as the current entry is the first one for the given vendor, add it
   [] // starting value of "allEntries"
);
console.log(result);
2
fjc 5 Апр 2021 в 19:20