Chupachar
@Chupachar
front-end dev

Как передать в функцию рендера html несколько массивов?

Всем привет, имеется код который реализует рендер данных массива currentTariff объектов в html приблизительно такого вида:
<div class="info"></div>
let currentTariff = [{ //массив из localStorage
    id: 1,
    name: 'Andy',
  },
  {
    id: 2,
    name: 'Bob',
  }
]
let info = document.querySelector('.info')

const render = (x = currentTariff) => {
  [...x].forEach(el =>
    info.insertAdjacentHTML('beforeend',
      `<div>${el.id}</div>
     <div>${el.name}</div>
    `
    )
  )
}
render()

let pets = [{ //массив из localStorage
    id: 1,
    pet: 'Dog',
  },
  {
    id: 2,
    pet: "Cat"
  },
  {
    id: 2,
    pet: 'Parrot',
  }
]


По сути функция render получает как параметр массив currentTariff из localStorage где данные перебираются и рендерятся на страницу. У пользователя есть еще возможность выбрать питомцев и их количество, предположим два пользователя выбрали себе питомцев и сформировался массив pets в localStorage в котором объекты питомцев идентифицируются по id, если у пользователя id: 2 и он выбирает два питомца, то у каждого из питомцев тоже будет id: 2.
Вопрос в том, как правильно "запустить" массив pets в функцию render для отрисовки всех данных pets?
Я пробовал такой вариант:
const render = (x = currentTariff, y = pets) => {
  [...x, ...y].forEach(...)

но он мне не подошел, неправильно рендерится. Может есть еще какие либо варианты?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Собрать промежуточный словарь, где ключи – id, а значения – массивы имён. Неважно, из тарифов или из pet'ов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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