let data = [
{
"id": 1,
"name": "Жанна Блиц"
},
{
"id": 1,
"name": "Арина Наумова"
},
{
"id": 2,
"name": "Виталий Коробко"
},
{
"id": 1,
"name": "Елена Снежная"
},
{
"id": 3,
"name": "Юлиана Ветрова"
},
{
"id": 2,
"name": "Максим Коробович"
},
{
"id": 3,
"name": "Юлия Фран"
},
]
data.forEach(({ id, name }) => {
users[`${name}`] = { id, name};
list.innerHTML += `
<li class="user-item">${name} | ${id}</li> `
})
<ul id="1">
<li>Жанна Блиц</li>
<li>Арина Наумова</li>
<li>Елена Снежная</li>
</ul>
<ul id="2">
<li>Виталий Коробко</li>
<li>Максим Коробович</li>
</ul>
<ul id="3">
<li>Юлия Фран</li>
</ul>
const grouped = Object.entries(arr.reduce((acc, n) => (
(acc[n.id] ??= []).push(n.name),
acc
), {}));
document.body.insertAdjacentHTML('beforeend', grouped
.map(([ k, v ]) => `
<ul id="list-${k}">${v.map(n => `
<li>${n}</li>`).join('')}
</ul>`)
.join('')
);
document.body.append(...grouped.map(([ id, names ]) => {
const ul = document.createElement('ul');
ul.id = `list-${id}`;
ul.append(...names.map(n => {
const li = document.createElement('li');
li.textContent = n;
return li;
}));
return ul;
}));
<div id='app'></div>
let data = [
{
"id": 1,
"name": "Жанна Блиц"
},
{
"id": 1,
"name": "Арина Наумова"
},
{
"id": 2,
"name": "Виталий Коробко"
},
{
"id": 1,
"name": "Елена Снежная"
},
{
"id": 3,
"name": "Юлиана Ветрова"
},
{
"id": 2,
"name": "Максим Коробович"
},
{
"id": 3,
"name": "Юлия Фран"
},
]
data.forEach((item)=>{
document.getElementById('app').innerHTML += `<ul><li>${item.id} | ${item.name}</li></ul>`
})