Memandangkan tatasusunan objek, tugasnya adalah untuk mengekstrak tatasusunan baharu yang mengandungi hanya nilai berbeza bagi sesuatu tertentu harta benda. Sebagai contoh, pertimbangkan tatasusunan berikut:
var array = [ { "name": "Joe", "age": 17 }, { "name": "Bob", "age": 17 }, { "name": "Carl", "age": 35 } ]
Objektifnya adalah untuk mendapatkan tatasusunan yang mengandungi umur yang berbeza daripada tatasusunan ini, menghasilkan:
[17, 35]
Penyelesaian Berulang
Pendekatan mudah melibatkan lelaran melalui objek dalam tatasusunan dan menyemak sama ada umur setiap objek wujud dalam hasilnya tatasusunan. Jika tidak, umur ditambah pada tatasusunan hasil. Pendekatan ini, walaupun berfungsi, tidak cekap kerana pergantungannya pada berbilang lelaran dan perbandingan.
var distinct = [] for (var i = 0; i < array.length; i++) if (array[i].age not in distinct) distinct.push(array[i].age)
Penyelesaian Dioptimumkan Menggunakan Set ES6
Untuk pengendalian yang lebih cekap, ES6 /ES2015 menawarkan struktur data Set, yang membolehkan penyimpanan nilai unik. Begini cara untuk menggunakannya:
const data = [ { "group": 'A', "name": 'SD' }, { "group": 'B', "name": 'FI' }, { "group": 'A', "name": 'MM' }, { "group": 'B', "name": 'CO'} ]; const unique = [...new Set(data.map(item => item.group))]; // [ 'A', 'B']
Dengan memetakan tatasusunan objek kepada tatasusunan nilai harta yang diingini dan mencipta Set daripadanya, kami menghapuskan nilai pendua. Kemudian, menukar Set kembali kepada tatasusunan menggunakan operator hamparan (...) menghasilkan hasil yang diingini.
Atas ialah kandungan terperinci Bagaimana Mengeluarkan Nilai Harta Unik dengan Cekap daripada Susunan Objek JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!