Javascript 是否有一种方法可以使用ES7 Set或Map方法比较两个对象?

Javascript 是否有一种方法可以使用ES7 Set或Map方法比较两个对象?,javascript,Javascript,我有两组javascript对象 const object1 = { checkedB: false, inqueryProcess: "inqury", inquryChannel: 0, inquryDate: undefined, inquryManager: "Option 1", inquryMemo: "", inquryRoute: 0, inquryTitle: 0, radio1:

我有两组javascript对象

const object1 = {
  checkedB: false,
  inqueryProcess: "inqury",
  inquryChannel: 0,
  inquryDate: undefined,
  inquryManager: "Option 1",
  inquryMemo: "",
  inquryRoute: 0,
  inquryTitle: 0,
  radio1: "common",
  radio2: "none"
}

const object2 = {
  checkedB: false,
  inquryMemo: "",
  inquryChannel: 0,
  inquryDate: undefined,
  inquryTitle: 0,
  radio2: "none"
  inquryManager: "Option 1",
  inqueryProcess: "inqury",
  inquryRoute: 0,
  radio1: "common",
}

我有两组完全相同的对象,我想比较它们的值是否相等

当然,我可以利用JSON.stringfy,但由于订单问题,我希望避免使用它

因此,我想使用es7新的Map或Set方法使比较更快、更高效

我将这些值添加到新集合中,如下所示

    const newSet1 = new Set();
    const newSet2 = new Set();

    Object.values(object1).forEach(val => newSet1.add(val));
    Object.values(object2).forEach(val => newSet2.add(val))

    console.log(newSet1);
    console.log(newSet2)
现在,newSet1和newSet2包含object1和object2的值

如何比较这两个对象是否具有相同的值集?

您可以从另一个对象中检查键/值对并删除现有键。最后检查贴图的长度是否为零

const
等质量=(a,b)=>{
常量映射=新映射(Object.entries(a));
返回对象
.条目(b)
.every([k,v])=>map.get(k)==v&&map.delete(k))&&
!map.size;
},
object1={checkedB:false,inqueryProcess:“inqury”,inquryChannel:0,inquryDate:未定义,inquryManager:“选项1”,inquryMemo:,inquryRoute:0,inquryTitle:0,radio1:“common”,radio2:“none”},
object2={checkedB:false,inqueryProcess:“inqury”,inquryChannel:0,inquryDate:未定义,inquryManager:“选项1”,inquryMemo:,inquryRoute:0,inquryTitle:0,radio1:“common”,radio2:“none”};
log(isEqual(object1,object2))