Saya memiliki array dalam format berikut di mana setiap "Vendor" unik sudah dipesan oleh (menggunakan kueri sql) variabel "Total_Weight" dalam urutan menurun. [ { Penjual: 'AAA', ...

0
user3447653 5 April 2021, 22:06

1 menjawab

Jawaban Terbaik

Anda cukup menggunakan reduce di sini untuk mengambil daftar dengan hanya elemen pertama per vendor:

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 April 2021, 19:20