JavaScript – Duplikate aus einem Array entfernen und ein Array mit den Duplikaten sowie ein weiteres Array mit allen anderen Elementen zurückgeben
P粉986937457
P粉986937457 2023-08-17 22:28:55
0
1
508
<p>Ich möchte einen Filter- oder Reduzierungsvorgang für ein Array ausführen und alle Duplikate im Array basierend auf dem Attribut „Name“ entfernen, wie in diesem Beispiel. Die Beispiele, die ich gesehen habe, sind das Durchlaufen des Arrays und das Beibehalten eines der Duplikate, aber in meinem Fall muss ich sie trennen und die Duplikate in einem Array an den Benutzer zurückgeben, um die Daten zu korrigieren und die anderen verbleibenden Elemente zu verarbeiten. Ich habe unten ein Beispielarray und ein erwartetes Ergebnisarray angegeben. Wenn mir jemand ein Beispiel dafür geben könnte, wäre ich sehr dankbar! Danke! </p> <pre class="brush:php;toolbar:false;">const customer = [ { id:1, Name: „John“, Adresse="123 Straße"}, { id:2, Name: „Alex“, Adresse="456 Straße"}, { id:3, Name: „John“, Adresse="674 Straße"}, { id:4, Name: „Stacy“, Adresse="534 Straße"}, { id:5, Name: „Blair“, Adresse="634 Straße"} ];</pre> <p>Dadurch erhalte ich die folgenden zwei Arrays:</p> <pre class="brush:php;toolbar:false;">[ { id:1, Name: „John“, Adresse="123 Straße"},, { id:3, Name: „John“, Adresse="674 Straße"}, ] Und [ { id:2, Name: „Alex“, Adresse="456 Straße"}, { id:4, Name: „Stacy“, Adresse="534 Straße"}, { id:5, Name: „Blair“, Adresse="634 Straße"} ]</pre> <p><br /></p>
P粉986937457
P粉986937457

Antworte allen(1)
P粉322319601

尝试一下

const customers = [
  { id: 1, name: "John", address: "123 street" },
  { id: 2, name: "Alex", address: "456 street" },
  { id: 3, name: "John", address: "674 street" },
  { id: 4, name: "Stacy", address: "534 street" },
  { id: 5, name: "Blair", address: "634 street" }
];

const nameMap = new Map();
const nonUniqueCustomers = [];
const uniqueCustomers=[];
customers.forEach(customer => {
  if (!nameMap.has(customer.name)) {
    nameMap.set(customer.name, []);
  }
  nameMap.get(customer.name).push(customer);
});

nameMap.forEach(customers => {
  if (customers.length > 1) {
    nonUniqueCustomers.push(...customers);
  }else{
uniqueCustomers.push(...customers)
  
  }
});


console.log("非唯一顾客:", nonUniqueCustomers);
console.log("唯一顾客:", uniqueCustomers);
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage