找出对象是否具有相同的键

Joh*_*Cdf 0 javascript algorithm underscore.js

我有一对物体.我试图找出它们是否都有相同的键,如下所示:

let a = { user1: true, user2: true }
let b = { user1: true, user3: true }
hasSameKeys(a, b) => false

let a = { user1: true, user2: true }
let b = { user2: true, user1: true }
hasSameKeys(a, b) => true
Run Code Online (Sandbox Code Playgroud)

我也在使用_underscore.js

提前致谢

约翰S.

Mar*_*yer 5

您可以测试它们是否具有相同数量的键,以及一个对象的每个键是否包含在另一个中:

function hasSameKeys(a, b){
    return Object.keys(a).length === Object.keys(b).length
    && Object.keys(a).every(k => b.hasOwnProperty(k))
}

let a = { user1: true, user2: true }
let b = { user1: true, user3: true }
console.log(hasSameKeys(a, b) )


a = { user1: true, user2: true }
b = { user2: true, user1: true }
console.log(hasSameKeys(a, b) )
Run Code Online (Sandbox Code Playgroud)