фильтр массив обьектов
Добрый день уважаемые форумчане.
помогите разобраться в одном вопросе. у меня есть два массива объектов, к примеру:
let obj1 = [
{id:1, name="вася"},
{id:2, name="петя"},
{id:3, name="маша"},
{id:4, name="даша"}
]
let obj2 = [
{id:1},
{id:2}
]
и мне нужно вывести объекты где id obj2 совпадает с obj1 запутался с фильтрами и сортировками, в итоге у меня получается достичь цели, но код выглядет громостким и "грязным" |
только "ослах" не будет работать %)
let obj1 = [
{ id: 1, name: "вася" },
{ id: 2, name: "петя" },
{ id: 3, name: "маша" },
{ id: 4, name: "даша" }
]
let obj2 = [
{ id: 1 },
{ id: 2 }
]
let obj2Keys = obj2.map(o2 => o2.id)
let result = obj1.filter(o1 => obj2Keys.includes(o1.id))
console.log(result)
|
SuperZen,
лишний цикл
let obj1 = [
{id:1, name:"вася"},
{id:2, name:"петя"},
{id:3, name:"маша"},
{id:4, name:"даша"}
];
let obj2 = [
{id:1},
{id:2}
];
var filtred = obj1.filter(el=> obj2.some(el2=> el2.id==el.id));
console.log(filtred);
|
j0hnik, Ок )
|
спасибо вам большое :)
|
| Часовой пояс GMT +3, время: 17:42. |