Rumah >hujung hadapan web >tutorial js >Bagaimanakah saya boleh mengumpulkan pelbagai objek mengikut harta tertentu dan menyatukan sifat lain ke dalam tatasusunan?
Memandangkan tatasusunan objek dengan sifat kumpulan dan warna, matlamatnya adalah untuk mengumpulkan item mengikut nilai kumpulannya, menyatukan warna nilai untuk setiap kumpulan.
Tatasusunan yang disediakan kelihatan seperti ini:
myArray = [ {group: "one", color: "red"}, {group: "two", color: "blue"}, {group: "one", color: "green"}, {group: "one", color: "black"} ]
Output yang dikehendaki ialah tatasusunan seperti ini:
myArray = [ {group: "one", color: ["red", "green", "black"]}, {group: "two", color: ["blue"]} ]
Di bawah ialah pelaksanaan JavaScript:
var myArray = [ {group: "one", color: "red"}, {group: "two", color: "blue"}, {group: "one", color: "green"}, {group: "one", color: "black"} ]; var group_to_values = myArray.reduce(function (obj, item) { obj[item.group] = obj[item.group] || []; obj[item.group].push(item.color); return obj; }, {}); var groups = Object.keys(group_to_values).map(function (key) { return {group: key, color: group_to_values[key]}; }); console.log("groups:"); console.log(JSON.stringify(groups, null, 4));
Kod ini mencipta output yang diingini, dengan item dikumpulkan mengikut sifat kumpulannya dan nilai warnanya disatukan ke dalam tatasusunan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengumpulkan pelbagai objek mengikut harta tertentu dan menyatukan sifat lain ke dalam tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!