У меня естьфильтрация в json с помощью id и возврат массива; карта без неопределенных
let list = {
1: { name: "someone1" },
5: { name: "someone5" },
7: { name: "someone7" },
8: { name: "someone8" }
};
и я хочу, чтобы фильтровать [1,5,42]
[
{ name: "someone1" },
{ name: "someone5" }
]
Я попытался
Object.keys(list).map(key=> {if([1,5,42].includes(key)) return list[key]});
[
{ name: "someone1" },
{ name: "someone5"},
undefined,
undefined
]
PS: Когда мой список был массив json, я использовал list.filter(person => [1,5].includes(person.id))
. Затем я переключился на ключевую модель id, поэтому я могу использовать liat[id]
, что намного быстрее, чем list.filter для одного элемента.
Вероятно, самым простым решением –
я специально хотел 42 часть. .! сделал редактирование в вопросе –
Итак, трюк заключается в том, что, поскольку карта всегда возвращает что-то, вы использовали сокращение и нажали на массив результатов, только если его не определено ...? –