Javascript 是否有一种方法可以使用ES7 Set或Map方法比较两个对象?
我有两组javascript对象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:
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))代码>