[英]Filter object properties based on another object
我有两个对象object_a
和object_b
。 从object_a
我只需要ID
出现在object_b
中的项目
const object_a = {
100: "Stack Overflow",
101: "MDN Web Docks",
102: "Javascript"
}
const object_b = {
0: {
id: 100,
name: "Stack",
lastname: "Overflow"
},
1: {
id: 101,
name: "Web",
lastname: "Docks"
}
}
从这些我需要得到object a
中的所有项目,其id
出现在object b
const desired_object = {
100: "Stack Overflow",
101: "MDN Web Docks"
}
您可以扩展 object_a 的object_a
Object.entries()
,过滤掉(使用Array.prototype.filter()
)那些在 object_b 的object_b
Object.values()
id
中看不到的( Array.prototype.some()
):
const a = {100:"Stack Overflow",101:"MDN Web Docks",102:"Javascript"}, b = {0:{id:100,name:'Stack',lastname:'Overflow',},1:{id:101,name:'Web',lastname:'Docks',}}, result = Object.fromEntries( Object.entries(a).filter(([key]) => Object.values(b).some(({id}) => id == key) ) ) console.log(result)
另一种方法(我猜,可能工作得稍微快一点)可以使用Array.prototype.reduce()
遍历 object_a 的object_a
Object.keys()
并执行相同的检查:
const a = {100:"Stack Overflow",101:"MDN Web Docks",102:"Javascript"}, b = {0:{id:100,name:'Stack',lastname:'Overflow',},1:{id:101,name:'Web',lastname:'Docks',}}, result = Object.keys(a).reduce((acc, key) => { if(Object.values(b).some(({id}) => id == key)) acc[key]=a[key] return acc }, {}) console.log(result)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.