Javascript 如何检查一个对象属性是否也存在于另一个对象属性中?
我有两个不同的对象,我想知道如果第二个对象的至少一个属性与第一个匹配,我想返回true。如果不是,则返回false。我尝试了.hasOwnProperty和.keys方法,但无法处理它。下面是一个示例代码。谢谢Javascript 如何检查一个对象属性是否也存在于另一个对象属性中?,javascript,Javascript,我有两个不同的对象,我想知道如果第二个对象的至少一个属性与第一个匹配,我想返回true。如果不是,则返回false。我尝试了.hasOwnProperty和.keys方法,但无法处理它。下面是一个示例代码。谢谢 let propchecker = (a,b) =>{ if(/* at least one property matches exact */){ return true; } else { return false;
let propchecker = (a,b) =>{
if(/* at least one property matches exact */){
return true;
}
else {
return false;
}
}
let origin = {name: "John", surname: "Doe"};
let first = {name: "John", surname: "Roe" };
let second = {name: "Jane", surname: "Doe"};
let third = {name: "Richard", surname: "Roe"};
console.log(propchecker(origin,first)); //Should return True.
console.log(propchecker(origin,second)); //Should return True.
console.log(propchecker(origin,third)); //Should return False.
您可以使用
object.keys()
获取一个对象的键,然后在其上使用some()
let-propchecker=(a,b)=>Object.keys(a).some(x=>a[x]==b[x])
让起源={姓名:“约翰”,姓氏:“多伊”};
让第一个={名字:“约翰”,姓氏:“罗”};
让第二个={姓名:“简”,姓氏:“多伊”};
让第三个={名字:“理查德”,姓氏:“罗”};
console.log(propchecker(原点,第一个))//应该返回True。
控制台日志(propchecker(原点,第二个))//应该返回True。
控制台日志(propchecker(原点,第三个))//应返回False。
请尝试此操作
让propchecker=(a,b)=>{
结果=假;
for(让ele先进来){
结果=结果| |(a[ele]==b[ele])
}
返回结果
}
让起源={姓名:“约翰”,姓氏:“多伊”};
让第一个={名字:“约翰”,姓氏:“罗”};
让第二个={姓名:“简”,姓氏:“多伊”};
让第三个={名字:“理查德”,姓氏:“罗”};
console.log(propchecker(原点,第一个))//应该返回True。
控制台日志(propchecker(原点,第二个))//应该返回True。
控制台日志(propchecker(原点,第三个))//应该返回False。
可能有较短的解决方案,但效果很好
让propchecker=(a,b)=>{
for(让输入a){
for(在b中输入2){
如果(a[键]==b[键2]){
返回真值
}
}
}
返回错误
}
让起源={姓名:“约翰”,姓氏:“多伊”};
让第一个={名字:“约翰”,姓氏:“罗”};
让第二个={姓名:“简”,姓氏:“多伊”};
让第三个={名字:“理查德”,姓氏:“罗”};
console.log(propchecker(原点,第一个))//应该返回True。
控制台日志(propchecker(原点,第二个))//应该返回True。
控制台日志(propchecker(原点,第三个))//代码>看起来已经有人回答了,但我也要参加比赛。所有这些答案都在做几乎相同的事情
let propchecker = (a,b) =>{
var check = false;
Object.keys(a).forEach(function(key) {
if(a[key] == b[key]) {
check = true;
}
})
return check;
}
let origin = {name: "John", surname: "Doe"};
let first = {name: "John", surname: "Roe" };
let second = {name: "Jane", surname: "Doe"};
let third = {name: "Richard", surname: "Roe"};
console.log(propchecker(origin,first)); //Should return True.
console.log(propchecker(origin,second)); //Should return True.
console.log(propchecker(origin,third)); //Should return False.
它应该尽可能的通用还是只检查名字和姓氏就足够了?通用应该更好这是一个较短的解决方案nice@SirDad如果你认为对你最好,就接受他的回答。当然,兄弟,这应该是最好的回答。