Maison  >  Questions et réponses  >  le corps du texte

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>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粉986937457P粉986937457429 Il y a quelques jours462

répondre à tous(1)je répondrai

  • P粉322319601

    P粉3223196012023-08-18 14:18:08

    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);

    répondre
    0
  • Annulerrépondre