Вы можете использовать reduce
и получить пользователей в userList
, которые также в vips
const input = {
userList: [
{ name:"Ann", number:123456789 },
{ name:"Cathy", number:123456789 },
{ name:"Peter", number:123456789 },
{ name:"Ben", number:123456789 },
],
vips: [
{ username:"Ann", years:2018 },
{ username:"Peter", years:2019 },
]
};
console.log(input.userList.reduce((acc, val) => {
if(!!input.vips.find(vip => vip.username === val.name)) {
acc.push(val);
}
return acc;
}, []));
Принимая во внимание, что длина vips
должна быть меньше длины userList
, или на максимуме то же самое (vips
должно быть подмножеством userList
), может быть, лучше подходить к отображению випов и возвращать соответствующего пользователя, как показано ниже:
const input = {
userList: [
{ name:"Ann", number:123456789 },
{ name:"Cathy", number:123456789 },
{ name:"Peter", number:123456789 },
{ name:"Ben", number:123456789 },
],
vips: [
{ username:"Ann", years:2018 },
{ username:"Peter", years:2019 },
]
};
console.log(input.vips.map(vip => input.userList.find(user => user.name === vip.username)));