javascript - 如何验证 2 个 JavaScript 对象是否具有相同的键
问题描述
我正在尝试比较 2 个大型 JavaScript 对象,每个对象都有将近 200 个键,这些键是无序的,并且每个 JavaScript 对象都有不同的值,但我只关心它们是否具有相同的键集即使它们的顺序不同,函数仍会返回 true
我尝试了以下代码但没有用
var cp = function (nl,en) {
let x= Object.keys(nl);
let y= Object.keys(en);
for (xel in x){
if (!y[xel]){
console.log("missing key en ", xel);
}
}}
例子:
{"key1": "val", "key2": "sdsfaf"}
{"Key2": "val", "key1": "vsdsdsd"}
This should return true
{"key1": "val", "key2": "sdsfaf"}
{"Key2": "val"}
This shouldn't
解决方案
new Set(Object.keys(a))
使用和获取对象的键集new Set(Object.keys(b))
。
然后将它们与例如进行比较。比较 ECMA6 集是否相等