640
@640
Beginner

Как сделать чтобы ключ не создавался если в него передается undefined?

Сделал такой код:

const data = [
  { id: 11, test: 1, q: 1 },
  { id: 22, w: 1 },
  { id: 33, test: 1, e: 1 },
  { id: 44, r: 1 },
  { id: 55, test: 1, t: 1 },
]

const obj = {}

data.map(item => obj[item.id] = {
  id: item.id,
  test: item.test
})

console.log(obj)


Результат:
5c60607aa128d194423367.png

Видно что ключ test есть не у всех.

Как сделать чтобы не создавался ключ test если он undefined ?
  • Вопрос задан
  • 116 просмотров
Решения вопроса 2
KevlarBeaver
@KevlarBeaver
Разработчик
data.map(item => obj[item.id] = item.test ? {
  id: item.id,
  test: item.test
} : {
  id: item.id
})
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
const obj = data.reduce((prev, item) => {
  prev[item.id] = (({id, test}) => ({id, test}))(item); // копируем выбранные свойства
  if (!item.hasOwnProperty('test')) delete prev[item.id].test; // удаляем пустышку, если нет ее
  return prev;
}, {});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы