Как сравнить объекты и найти различие? Есть два объекта и нужно сравнить их и узнать, в чём они отличаются. Объекты выглядят так:New Object: { no: 123, print: '123', colorQty: 0, id: 602 } Old Object: { no: 123, print: '123', colorQty: 1, id: 602 } Видно, что colorQty: 0, меняется на colorQty: 1, Не нужно сравнить их и узнать, что они равны через isEqual, нужно узнать, в чём они различны. Как в таком случае сравнить объекты?
Для сравнения объектов и выявления различий между ними можно использовать цикл for..in для перебора свойств объектов и сравнения их значений. Например, можно сделать следующую функцию:
function findDifferencesnewObj,oldObjnewObj, oldObjnewObj,oldObj { for letkeyinnewObjlet key in newObjletkeyinnewObj { if newObj[key]!==oldObj[key]newObj[key] !== oldObj[key]newObj[key]!==oldObj[key] { console.log(`Различие в свойстве ${key}: ${oldObj[key]} -> ${newObj[key]}`); } } } let newObj = { no: 123, print: '123', colorQty: 0, id: 602 }; let oldObj = { no: 123, print: '123', colorQty: 1, id: 602 }; findDifferencesnewObj,oldObjnewObj, oldObjnewObj,oldObj;
При вызове функции findDifferences для объектов newObj и oldObj будет выведено различие в свойстве colorQty.
Для сравнения объектов и выявления различий между ними можно использовать цикл for..in для перебора свойств объектов и сравнения их значений. Например, можно сделать следующую функцию:
function findDifferencesnewObj,oldObjnewObj, oldObjnewObj,oldObj {for letkeyinnewObjlet key in newObjletkeyinnewObj {
if newObj[key]!==oldObj[key]newObj[key] !== oldObj[key]newObj[key]!==oldObj[key] {
console.log(`Различие в свойстве ${key}: ${oldObj[key]} -> ${newObj[key]}`);
}
}
}
let newObj = { no: 123, print: '123', colorQty: 0, id: 602 };
let oldObj = { no: 123, print: '123', colorQty: 1, id: 602 };
findDifferencesnewObj,oldObjnewObj, oldObjnewObj,oldObj;
При вызове функции findDifferences для объектов newObj и oldObj будет выведено различие в свойстве colorQty.