ES6 Фильтр / уменьшение объекта из массива - PullRequest
0 голосов
/ 29 апреля 2018

С учетом

commentIdList = [2,3]
comments = { 1 : "a", 2: "b", 3: "c", 4: "d" }

Требуется вывод

filteredComments = [ {2:"b"} , {3:"c"} ]

Моя неудачная попытка

const filteredComments = comments.filter((c)=> commentsIdList.map(comment=>c.id === comment))

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Это один из способов

commentIdList.map(commentId => ({ [commentId]: comments[commentId] })
0 голосов
/ 29 апреля 2018

Используйте Array.map() для итерации commentIdList. Получите значение из comments по ключу (id) и создайте новый объект, используя вычисляемые имена свойств :

const commentIdList = [2,3];
const comments = { 1 : "a", 2: "b", 3: "c", 4: "d" }
const filteredComments = commentIdList.map((id) => ({
  [id]: comments[id]
}));

console.log(filteredComments);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...