← Alle AufgabenJavaScript · Middle

deepEqual: tiefer Vergleich

Schreib eine Funktion deepEqual(a, b), die Werte nach Inhalt vergleicht: Primitive, Arrays und einfache Objekte in beliebiger Tiefe. Die Reihenfolge der Schlüssel in Objekten spielt keine Rolle.

Ein Array ist nicht gleich einem Objekt mit denselben Schlüsseln, { a: undefined } ist nicht gleich { b: undefined }, und NaN ist gleich NaN.

Tests (8)

  1. expect(deepEqual({ a: 1, b: [1, 2] }, { b: [1, 2], a: 1 })).toBe(true);
  2. expect(deepEqual({ a: { b: { c: 1 } } }, { a: { b: { c: 2 } } })).toBe(false);
  3. expect(deepEqual([1, [2, [3]]], [1, [2, [3]]])).toBe(true);
  4. expect(deepEqual([1, 2], { 0: 1, 1: 2 })).toBe(false);
  5. expect(deepEqual({ a: undefined }, { b: undefined })).toBe(false);
  6. expect(deepEqual(NaN, NaN)).toBe(true);
  7. expect(deepEqual(null, {})).toBe(false);
    expect(deepEqual(null, null)).toBe(true);
  8. expect(deepEqual(1, '1')).toBe(false);