@jeka-3

Как отфильтровать объекты из массива по id?

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>  `
})

на моём примере все выводит в один список. как отфильтровать так чтобы к примеру один список с id: 1, второй id: 2 и т.д. ?
в результате нужно получить вот такой результат:
<ul id="1">
  <li>Жанна Блиц</li>
  <li>Арина Наумова</li>
  <li>Елена Снежная</li>
</ul>
<ul id="2">
  <li>Виталий Коробко</li>
  <li>Максим Коробович</li>
</ul>
<ul id="3">
  <li>Юлия Фран</li>
</ul>
  • Вопрос задан
  • 333 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const html = Object
  .entries(arr.reduce((acc, n) => ((acc[n.id] ??= []).push(n), acc), {}))
  .map(([ k, v ]) => `
    <ul id="list-${k}">${v.map(n => `
      <li>${n.name}</li>`).join('')}
    </ul>`)
  .join('');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
data.filter(item => item.id == 1)
Ответ написан
@drawnofmymind
<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>`
})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы