Rumah  >  Soal Jawab  >  teks badan

JavaScript - Alih keluar pendua daripada tatasusunan dan kembalikan tatasusunan yang mengandungi pendua dan tatasusunan lain yang mengandungi semua item lain

<p>Saya mahu menjalankan penapis atau mengurangkan operasi pada tatasusunan dan mengalih keluar semua pendua dalam tatasusunan berdasarkan atribut 'nama' seperti dalam contoh ini. Contoh-contoh yang saya lihat sedang berulang melalui tatasusunan dan menyimpan salah satu pendua, tetapi dalam kes saya, saya perlu mengasingkannya dan mengembalikan pendua kepada pengguna dalam tatasusunan untuk membetulkan data, dan memproses item lain yang tinggal. Saya telah memberikan tatasusunan contoh dan tatasusunan hasil yang dijangkakan di bawah. Jika sesiapa boleh memberi saya contoh bagaimana untuk melakukan ini, saya akan sangat berterima kasih! Terima kasih! </p> <pre class="brush:php;toolbar:false;">const pelanggan = [ { id:1, nama: "John", alamat="123 jalan"}, { id:2, nama: "Alex", alamat="456 street"}, { id:3, nama: "John", alamat="674 street"}, { id:4, nama: "Stacy", alamat="534 street"}, { id:5, nama: "Blair", alamat="634 jalan"} ];</pre> <p>Ini akan memberi saya dua tatasusunan berikut:</p> <pre class="brush:php;toolbar:false;">[ { id:1, nama: "John", alamat="123 jalan"},, { id:3, nama: "John", alamat="674 street"}, ] dan [ { id:2, nama: "Alex", alamat="456 street"}, { id:4, nama: "Stacy", alamat="534 street"}, { id:5, nama: "Blair", alamat="634 jalan"} ]</pre> <p><br /></p>
P粉986937457P粉986937457430 hari yang lalu467

membalas semua(1)saya akan balas

  • P粉322319601

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

    Cubalah

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

    balas
    0
  • Batalbalas