Сравнение вложенных объектов
✕ Вложенные объекты с одинакоыми свойствами, но в разном порядке, должны быть равными
Входные параметры функции:
- a = {"test":{"name":"Misha","order":{"price":20}}};
- b = {"test":{"order":{"price":20},"name":"Misha"}} (2ms)
✕ Объект и его копия, с изменённым вложенным свойством, не должны быть равными
Входные параметры функции:
- a = {"name":"Misha","order":{"price":20}};
- b = {"name":"Misha","order":{"price":1000}} (1ms)
✕ Объект и его копия, с дополнительным свойством со значением null во вложенном объекте, не должны быть равными
Входные параметры функции:
- a = {"name":"Misha","order":{"price":20}};
- b = {"name":"Misha","order":{"price":20,"extraField":null}}
Сравнение объектов
✕ Объекты с одинаковыми свойствами, но разным порядком, должны быть равными
Входные параметры функции:
- a = {"name":"Misha","order":{"price":20}};
- b = {"order":{"price":20},"name":"Misha"} (1ms)
✕ Объект и его копия, с изменённым свойством, не должны быть равными
Входные параметры функции:
- a = {"name":"Misha","order":{"price":20}};
- b = {"order":{"price":20},"name":"Petya"} (1ms)
Сравнение объектов с глубокой вложенностью
✕ Объект с глубокой вложенностью и его копия, с дополнительным свойством в значении null, не должны быть равными
Входные параметры функции:
- a = {"name":"Misha","order":{"price":20,"count":1,"taxes":{"vat":{"name":"vat","amount":{"uah":10,"usd":0.37}}},"total":{"withoutTaxes":{"uah":20,"usd":0.74},"withTaxes":{"vat":{"uah":30,"usd":1.11}}}}};
- b = {"name":"Misha","order":{"price":20,"count":1,"taxes":{"vat":{"name":"vat","amount":{"uah":10,"usd":0.37}}},"total":{"withoutTaxes":{"uah":20,"usd":0.74},"withTaxes":{"vat":{"uah":30,"usd":1.11,"eur":null}}}}}
✕ Объект с глубокой вложенностью и его копия, со свойствами в другом порядке, должны быть равными
Входные параметры функции:
- a = {"name":"Misha","order":{"price":20,"count":1,"taxes":{"vat":{"name":"vat","amount":{"uah":10,"usd":0.37}}},"total":{"withoutTaxes":{"uah":20,"usd":0.74},"withTaxes":{"vat":{"uah":30,"usd":1.11}}}}};
- b = {"name":"Misha","order":{"count":1,"price":20,"taxes":{"vat":{"name":"vat","amount":{"uah":10,"usd":0.37}}},"total":{"withTaxes":{"vat":{"uah":30,"usd":1.11}},"withoutTaxes":{"usd":0.74,"uah":20}}}} (1ms)
✕ Объект с глубокой вложенностью и его копия, с изменённым свойством, не должны быть равными
Входные параметры функции:
- a = {"name":"Misha","order":{"price":20,"count":1,"taxes":{"vat":{"name":"vat","amount":{"uah":10,"usd":0.37}}},"total":{"withoutTaxes":{"uah":20,"usd":0.74},"withTaxes":{"vat":{"uah":30,"usd":1.11}}}}};
- b = {"name":"Misha","order":{"price":20,"count":1,"taxes":{"vat":{"name":"vat","amount":{"uah":10,"usd":0.37}}},"total":{"withoutTaxes":{"uah":20,"usd":575},"withTaxes":{"vat":{"uah":30,"usd":1.11,"eur":null}}}}}
В случае, когда объекты ссылаются друг на друга, функция должна продолжать работать до переполнения call stack
✕ should be done by using recursion (27ms)