← Усі задачіJavaScript · Middle
deepEqual: глибоке порівняння
Напишіть функцію deepEqual(a, b), яка порівнює значення за вмістом: примітиви, масиви й звичайні об'єкти будь-якої вкладеності. Порядок ключів в об'єктах не важливий.
Масив не дорівнює об'єкту з тими самими ключами, { a: undefined } не дорівнює { b: undefined }, а NaN дорівнює NaN.
Ctrl+Enter - запустити тести. Tab - відступ; щоб вийти з редактора клавіатурою, натисніть Esc, а потім Tab. Код зберігається в цьому браузері.
Тести (8)
expect(deepEqual({ a: 1, b: [1, 2] }, { b: [1, 2], a: 1 })).toBe(true);
expect(deepEqual({ a: { b: { c: 1 } } }, { a: { b: { c: 2 } } })).toBe(false);
expect(deepEqual([1, [2, [3]]], [1, [2, [3]]])).toBe(true);
expect(deepEqual([1, 2], { 0: 1, 1: 2 })).toBe(false);
expect(deepEqual({ a: undefined }, { b: undefined })).toBe(false);
expect(deepEqual(NaN, NaN)).toBe(true);
expect(deepEqual(null, {})).toBe(false); expect(deepEqual(null, null)).toBe(true);
expect(deepEqual(1, '1')).toBe(false);