程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何通过键 + 值比较 ES6 中的 2 个对象大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何通过键 + 值比较 ES6 中的 2 个对象?

开发过程中遇到如何通过键 + 值比较 ES6 中的 2 个对象的问题如何解决?下面主要结合日常开发的经验,给出你关于如何通过键 + 值比较 ES6 中的 2 个对象的解决方法建议,希望对你解决如何通过键 + 值比较 ES6 中的 2 个对象有所启发或帮助;

如何使用 ES6 比较 2 个对象及其值?

我拥有的对象:

let obj1 =  { c: 1,o: 1,m: 2,a: 1,s: 1 }
let obj2 =  { a: 4,b: 2,c: 3,s: 1,d: 2 }
   

我想检查 obj1[key] 是否存在于 obj2 中。 并且如果这个key在obj2中的值与obj1中的相同则返回true;

PS 我对编程有点陌生

解决方法

假设上面例子中的对象相等并且上面“相等”的定义是不完整的(假设我们只想处理对象)下面应该可以工作:

function equals(o1,o2) {
    if (typeof o1 !== 'object' || typeof o2 !== 'object') {
        return false; // we compare objects only!
    }
    // when one object has more attributes than the other - they can't be eq
    if (Object.keys(o1).length !== Object.keys(o2).length) {
        return false;
    }
    for (let k of Object.keys(o1)) {
        if (o1[k] !== o2[k]) {
            return false;
        }    
    }
    return true;
}

澄清一下,根据问题中的定义,以下对象是相等的:

o1 = { a: 1 };
o2 = { a: 1,b: 2 };

但我很难相信这是 OP 的意图!

,

我用“伪代码”注释做了一个简单的模型,应该可以帮助你理解

function checkObjInTables(tab1,tab2,key){
    // return {KEY EXIST IN TABLE 1} AND {KEY EXIST IN TABLE 2} AND {VALUE OF KEY IN TABLE 1} IS EQUAL TO {VALUE OF KEY IN TABLE 2}
    return key in tab1 && key in tab2 && tab1[key] == tab2[key];
};

let obj1 =  { c: 1,o: 1,m: 2,a: 1,s: 1 }
let obj2 =  { a: 4,b: 2,c: 3,s: 1,d: 2 }

console.log(checkObjInTables(obj1,obj2,"s")); // true
console.log(checkObjInTables(obj1,"a")); // false

,

有一种 JavaScript 方式。

let obj1 = { c: 1,s: 1 };
let obj2 = { a: 4,d: 2 };

const isObject = obj => typeof obj === 'object' && obj !== null;

function check(obj1,obj2) {
    // check if both inputs are object and not null
    if(!isObject(obj1) || !isObject(obj2)) return false;
    
    // check if both obj has equal size
    if(Object.keys(obj1) !== Object.keys(obj2)) return false;
    
    for (const key of Object.keys(obj1)) {
        if (!(key in obj2) || obj1[key] !== obj2[key]) return false;
    }
    return true;
}

console.log(check(obj1,obj2));

大佬总结

以上是大佬教程为你收集整理的如何通过键 + 值比较 ES6 中的 2 个对象全部内容,希望文章能够帮你解决如何通过键 + 值比较 ES6 中的 2 个对象所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。