const object1 = {name: 'aman', address: [{houseNo:'123',city: 'city1'}],interest: ['cooking','playing']};
const object2 = {name: 'aman', address: [{city: 'city1',houseNo: '123'}],interest: ['cooking','playing']};
const object3 = {name: 'aman', address: [{city: 'city1',houseNo: '123'}],interest: ['playing','cooking']};
const object4 = {name: 'aman2',address: [{city: 'city1',houseNo: '123'}],interest: ['playing','cooking']};
const object5 = {name: 'aman2',address: [{city: 'city1',houseNo: '123',test:"deneme"}],interest: ['playing','cooking']};
const object6 = {name: 'aman2',address: [{city: 'city1',houseNo: '123'}],interest:['playing','cooking','test']};
console.log("expected:true, result:", compare(object1,object2))
console.log("expected:true, result:", compare(object1,object3))
console.log("expected:false, result:", compare(object1,object4))
console.log("expected:false, result:", compare(object1,object5))
console.log("expected:false, result:", compare(object1,object6))
function compare(obj1,obj2){
if(Array.isArray(obj1)){obj1=obj1.sort();obj2=obj2.sort()}
return typeof obj1 === 'object' && Object.keys(obj1).length > 0
? Object.keys(obj1).length === Object.keys(obj2).length
&& Object.keys(obj1).every(p => compare(obj1[p], obj2[p]))
: obj1 === obj2
}