Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menghimpunkan Objek dalam Tatasusunan Berdasarkan Harta Bersama?

Bagaimanakah Saya Boleh Menghimpunkan Objek dalam Tatasusunan Berdasarkan Harta Bersama?

DDD
DDDasal
2024-12-23 00:35:26902semak imbas

How Can I Group Objects in an Array Based on a Common Property?

Kumpulkan Objek mengikut Harta Sepunya

Masalah:

Anda mempunyai tatasusunan objek di mana setiap objek mempunyai " harta kumpulan". Anda ingin menukar tatasusunan ini kepada tatasusunan baharu yang mana nilai sifat "kumpulan" yang serupa dikumpulkan bersama.

Output yang Diingini:

myArray = [
  {group: "one", color: ["red", "green", "black"]},
  {group: "two", color: ["blue"]}
]

Penyelesaian:

  1. Buat pemetaan nama kumpulan untuk dikosongkan tatasusunan:
var group_to_values = {};
  1. Lelaran pada tatasusunan input:
myArray.forEach(function (item) {
    group_to_values[item.group] = group_to_values[item.group] || [];
});
  1. Untuk setiap kunci dalam pemetaan, cipta objek dengan nama kumpulan dan tatasusunan nilai:
var groups = [];
for (var key in group_to_values) {
    groups.push({group: key, color: group_to_values[key]})
}
  1. Tatasusunan kumpulan yang terhasil ialah dikumpulkan mengikut sifat "kumpulan".

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghimpunkan Objek dalam Tatasusunan Berdasarkan Harta Bersama?. 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