Всем привет. Допустим у нас есть массив элементов со свойствами name и ID.
var arr = [{
name: "Dog",
id: "1"
}, {
name: "Cat",
id: "2"
}, {
name: "Dog",
id: "3"
}, {
name: "Cat",
id: "4"
}];
Необходимо сгруппировать элементы по одинаковым значениям свойства name и добавить их в виде массивов в новый массив?
На выходе должно получиться следующее:
var new_arr = [
[{
"name": "Dog",
"id": "1"
}, {
"name": "Dog",
"id": "3"
}],
[{
"name": "Cat",
"id": "2"
}, {
"name": "Cat",
"id": "4"
}]
];
Значения свойства name динамические
var arr = [
{ name: "Dog", id: "1" },
{ name: "Cat", id: "2" },
{ name: "Dog", id: "3" },
{ name: "Cat", id: "4" }
];
var map = arr.reduce((r, i) => {
r[i.name] = r[i.name] || [];
r[i.name].push(i);
return r;
}, {});
var arr1 = [];
for (var key in map) {
arr1.push(map[key]);
}
console.log(arr1);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости