const obj=[
{a:1,b:2},
{b:2,a:1},
{a:1,b:2},
{a:3,b:{c:11,d:4}},
{a:3,b:{d:4,c:1}}
]
const newArr=[...obj];
function isObject(obj){
return obj!==null && typeof obj==='object';
}
function objIsEqual(obj1,obj2){
if(!isObject(obj1) || !isObject(obj2)){
return Object.is(obj1,obj2);
}
if(obj1===obj2){
return true;
}
const keys1=Object.keys(obj1);
const keys2=Object.keys(obj2);
if(keys1.length!==keys2.length){
return false;
}
for(let key of keys1){
if(!keys2.includes(key)){
return false;
}
const res=objIsEqual(obj1[key],obj2[key]);
if(!res){
return false;
}
}
return true;
}
for(let i=0;i<obj.length;i++){
for(let j=i+1;j<newArr.length;j++){
//if(JSON.stringify(obj[i])===JSON.stringify(newArr[j])){
if(objIsEqual(obj[i],newArr[j])){
newArr.splice(i,1);
j--;
}
}
}
console.log(newArr)