lavezzi1
@lavezzi1

Как перебрать массив?

Здравствуйте! Можно ли встроенными методами для array (желательно без loop) вернуть такой результат по итогу преобразований?
const result = [1, 2, 4, 8, 3];

То есть получить массив со значениями в массиве items_ids и чтобы они не повторялись. Спасибо

https://jsfiddle.net/v2tuxeyb/
  • Вопрос задан
  • 214 просмотров
Решения вопроса 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Вот вам для примера
https://jsfiddle.net/yarkov_aleksei/v2tuxeyb/1/
const groups = [
	{ id: 1, name: 'group 1', items_ids: [1, 2, 4] },
  { id: 2, name: 'group 2', items_ids: [8, 2, 3] },
  { id: 3, name: 'group 3', items_ids: [12, 1] },
  { id: 4, name: 'group 4', items_ids: [] },
  { id: 5, name: 'group 5', items_ids: [] },
]

const result = groups
	.filter(group => group.items_ids.length > 0)
  .reduce((prev, next, i, acc) => prev.concat(next.items_ids), [])

console.clear()
console.log(result) // [1, 2, 4, 8, 2, 3, 12, 1]
console.log([...new Set(result)]) // [1, 2, 4, 8, 3, 12]
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
Сделать объект, где ключами будут эти значения id (при повторном назначении дубля не возникает).
Потом забрать ключи (как строки) и отдать их как массив чисел.
Object
  .keys(
    groups.reduce((p,c) => { c.items_ids.map(e => p[e] = e); return p; }, {})
  )
  .map(
    s => parseInt(s)
  )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
Комментировать
Ваш ответ на вопрос

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

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