JSON.stringify()在判断时会出现{a:1,b:2}!={b:2,a:1}的情况,下面是我的代码:
<script>
function equal(o1,o2){
if(o1===o2){return true;}
if(typeof(o1)!==typeof(o2)){
return false;
}
if(typeof(o1)===typeof([])){
// if(o1.length!==o2.length){
// return false;
// }
// b1=true
// for(i in o1){
// if(!equal(o1[i],o2[i])){
// return false
// }
// }
if(JSON.stringify(o1)[0]!==JSON.stringify(o2)[0]){
return false;
}
if(Object.keys(o1).length===Object.keys(o2).length){
b2=false
for(i in o1){
if(!equal(o1[i],o2[i])){
return false
}
}
return true
}else{
return false;
}
return true
}
if(typeof(o1)===typeof({})){
}
}
res=equal({s:{s:1},w:3},{w:3,s:{s:1}})
console.log(res)
</script>