JavaScript - Alih keluar pendua daripada tatasusunan dan kembalikan tatasusunan yang mengandungi pendua dan tatasusunan lain yang mengandungi semua item lain
P粉986937457
P粉986937457 2023-08-17 22:28:55
0
1
491
<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粉986937457
P粉986937457

membalas semua(1)
P粉322319601

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);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan