Угловое 6: в чем разница между передатчиком-транспонтером в эмиттере углового ядра?

Начните с создания сопоставления имен групп со значениями. Затем преобразование в желаемый формат.

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]};
});

var pre = document.createElement("pre");
pre.innerHTML = "groups:\n\n" + JSON.stringify(groups, null, 4);
document.body.appendChild(pre);

Использование методов экземпляра Array, таких как , уменьшает и карту дает вам мощные конструкции более высокого уровня, которые могут сэкономить вам много боли в ручном режиме.

-1
задан user9964622 13 July 2018 в 22:38
поделиться