From a1304e734961bab35bccbcb6db052c53dc338f32 Mon Sep 17 00:00:00 2001 From: Avior Date: Wed, 22 Feb 2023 16:31:52 +0100 Subject: [PATCH] fix: handle arrays with empty elements Signed-off-by: Avior --- packages/object-util/__tests__/index.test.ts | 5 ++++- packages/object-util/src/ObjectUtil.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/object-util/__tests__/index.test.ts b/packages/object-util/__tests__/index.test.ts index cd60265..9585bbb 100644 --- a/packages/object-util/__tests__/index.test.ts +++ b/packages/object-util/__tests__/index.test.ts @@ -1,6 +1,6 @@ /// -import { objectSize, objectMap, objectSort, objectEqual, objectKeys, objectSet, objectLoop, objectClone, objectValues, objectClean, isObject, objectOmit } from '../src/ObjectUtil' +import { isObject, objectClean, objectClone, objectEqual, objectKeys, objectLoop, objectMap, objectOmit, objectSet, objectSize, objectSort, objectValues } from '../src/ObjectUtil' describe('Throw if parameter is not an object', () => { it('should works', () => { @@ -271,6 +271,9 @@ describe('Object Equal Test', () => { a: [10, {b: 'c'}], d: '1', e: 2, f: true, g: null, h: undefined })).toBe(true) }) + it('should handle arrays with empty elements', () => { + expect(objectEqual([,true], [,true])).toBe(true) + }) }) describe('Object Clean Tests', () => { diff --git a/packages/object-util/src/ObjectUtil.ts b/packages/object-util/src/ObjectUtil.ts index c9a019d..07b327c 100644 --- a/packages/object-util/src/ObjectUtil.ts +++ b/packages/object-util/src/ObjectUtil.ts @@ -200,7 +200,7 @@ export function objectEqual(first: BasicObject, second: BasicObject): boolean { return false } const res = objectLoop(first, (item, key) => { - if (!(key in second)) { + if (!(key in second) && key in first) { return false } const item2 = second[key]