Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menghimpunkan Item Array mengikut Sifat Objek dalam JavaScript?

Bagaimana untuk Menghimpunkan Item Array mengikut Sifat Objek dalam JavaScript?

DDD
DDDasal
2024-12-31 01:53:12864semak imbas

How to Group Array Items by Object Properties in JavaScript?

Kumpulkan Item Tatasusunan mengikut Sifat Objek

Dalam senario anda, anda ingin menyatukan tatasusunan yang mengandungi objek dengan sifat kumpulan biasa ke dalam tatasusunan baharu . Setiap kumpulan harus mempunyai tatasusunan warna yang unik.

Untuk mencapai ini menggunakan JavaScript:

  1. Buat Pemetaan Nama Kumpulan kepada Nilai:
    Buat objek kosong, kumpulan_kepada_nilai. Kemudian, melintasi tatasusunan input, myArray, menggunakan kaedah pengurangan.
  • Untuk setiap objek dalam myArray, semak sifat kumpulan.
  • Simpan harta kumpulan sebagai masukkan kumpulan_kepada_nilai.
  • Buat tatasusunan pada kunci itu jika ia tidak wujud.
  • Tekan sifat warna objek ke dalam tatasusunan pada kekunci kumpulan yang sepadan.
var group_to_values = myArray.reduce(function (obj, item) {
    obj[item.group] = obj[item.group] || [];
    obj[item.group].push(item.color);
    return obj;
}, {});
  1. Ubah ke dalam Format Diingini:
    Tukar objek group_to_values ​​ke dalam format tatasusunan yang dikehendaki. Gunakan Object.keys() untuk mendapatkan nama kumpulan dan mengubahnya menjadi objek.
var groups = Object.keys(group_to_values).map(function (key) {
    return {group: key, color: group_to_values[key]};
});

Hasilnya, kumpulan, akan menjadi tatasusunan objek, setiap satu mewakili kumpulan, dengan tatasusunan warna mengandungi semua warna unik untuk kumpulan itu.

Atas ialah kandungan terperinci Bagaimana untuk Menghimpunkan Item Array mengikut Sifat 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