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
Lepaskan: 2024-12-23 00:35:26
asal
942 orang telah melayarinya

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"]}
]
Salin selepas log masuk

Penyelesaian:

  1. Buat pemetaan nama kumpulan untuk dikosongkan tatasusunan:
var group_to_values = {};
Salin selepas log masuk
  1. Lelaran pada tatasusunan input:
myArray.forEach(function (item) {
    group_to_values[item.group] = group_to_values[item.group] || [];
});
Salin selepas log masuk
  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]})
}
Salin selepas log masuk
  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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan