Javascript 如何检查一个对象属性是否也存在于另一个对象属性中?

Javascript 如何检查一个对象属性是否也存在于另一个对象属性中?,javascript,Javascript,我有两个不同的对象,我想知道如果第二个对象的至少一个属性与第一个匹配,我想返回true。如果不是,则返回false。我尝试了.hasOwnProperty和.keys方法,但无法处理它。下面是一个示例代码。谢谢 let propchecker = (a,b) =>{ if(/* at least one property matches exact */){ return true; } else { return false;

我有两个不同的对象,我想知道如果第二个对象的至少一个属性与第一个匹配,我想返回true。如果不是,则返回false。我尝试了.hasOwnProperty和.keys方法,但无法处理它。下面是一个示例代码。谢谢

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如果你认为对你最好,就接受他的回答。当然,兄弟,这应该是最好的回答。