Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengeluarkan Nilai Unik dengan Cekap daripada Susunan Objek dalam JavaScript?

Bagaimanakah Saya Boleh Mengeluarkan Nilai Unik dengan Cekap daripada Susunan Objek dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-09 16:40:12145semak imbas

How Can I Efficiently Extract Unique Values from an Array of Objects in JavaScript?

Mengekstrak Nilai Berbeza dengan Cekap daripada Susunan Objek dalam JavaScript

Dalam JavaScript, mendapatkan nilai berbeza daripada tatasusunan objek boleh menjadi perkara biasa tugasan. Pertimbangkan senario berikut:

var array = [
  { name: "Joe", age: 17 },
  { name: "Bob", age: 17 },
  { name: "Carl", age: 35 }
];

// Desired Result: [17, 35]

Untuk mencapai hasil ini, satu pendekatan adalah untuk melelaran melalui tatasusunan dan mengekalkan tatasusunan berasingan untuk menyimpan nilai yang berbeza. Walau bagaimanapun, kaedah ini boleh menjadi tidak cekap, terutamanya untuk tatasusunan yang besar.

Pendekatan alternatif, tersedia dalam ES6/ES2015 dan kemudian, menggunakan struktur data Set. Set menyediakan koleksi nilai yang unik, jadi anda boleh mencipta Set baharu daripada tatasusunan sifat objek yang diingini:

const uniqueAges = [...new Set(array.map(item => item.age))];

Pernyataan ini berulang melalui tatasusunan menggunakan fungsi map() untuk mengekstrak sifat umur daripada setiap objek. Ia kemudian mencipta Set daripada nilai yang diekstrak menggunakan pembina Set() baharu. Akhir sekali, ia menyebarkan Set ke dalam tatasusunan menggunakan operator spread (...), menghasilkan senarai umur yang berbeza yang diingini: [17, 35].

Pendekatan ini menawarkan faedah prestasi yang ketara berbanding lelaran kaedah, terutamanya untuk set data yang besar. Ia menghapuskan keperluan untuk struktur data tambahan dan meminimumkan bilangan lelaran yang diperlukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nilai Unik dengan Cekap daripada Susunan Objek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn