JavaScript - Supprime les doublons d'un tableau et renvoie un tableau contenant les doublons et un autre tableau contenant tous les autres éléments
P粉986937457
P粉986937457 2023-08-17 22:28:55
0
1
509
<p>Je souhaite exécuter un filtre ou réduire une opération sur un tableau et supprimer tous les doublons du tableau en fonction de l'attribut 'name', comme dans cet exemple. Les exemples que j'ai vus parcourent le tableau et conservent l'un des doublons, mais dans mon cas, je dois les séparer et renvoyer les doublons à l'utilisateur dans un tableau pour corriger les données et traiter les autres éléments restants. J'ai donné ci-dessous un exemple de tableau et un tableau de résultats attendus. Si quelqu'un pouvait me donner un exemple de la façon de procéder, je lui en serais très reconnaissant ! Merci! </p> <pre class="brush:php;toolbar:false;">const clients = [ { id:1, nom : "Jean", adresse="123 rue"}, { id:2, nom : "Alex", adresse="456 rue"}, { id:3, nom : "John", adresse="674 rue"}, { id:4, nom : "Stacy", adresse="534 rue"}, { id :5, nom : "Blair", adresse="634 rue"} ];≪/pré> <p>Cela me donnera les deux tableaux suivants :</p> <pre class="brush:php;toolbar:false;">[ { id:1, nom : "John", adresse="123 rue"},, { id:3, nom : "John", adresse="674 rue"}, ] et [ { id:2, nom : "Alex", adresse="456 rue"}, { id:4, nom : "Stacy", adresse="534 rue"}, { id :5, nom : "Blair", adresse="634 rue"} ]≪/pré> <p><br /></p>
P粉986937457
P粉986937457

répondre à tous(1)
P粉322319601

Essayez-le

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);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal