Skip to content

Commit 5fa7974

Browse files
committed
fix(flattenObject): flattenObject should retain empty objects and arrays
1 parent 50339c3 commit 5fa7974

File tree

6 files changed

+21
-1
lines changed

6 files changed

+21
-1
lines changed

docs/ja/reference/object/flattenObject.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ const emptyCase = {
107107
const result = flattenObject(emptyCase);
108108
console.log(result);
109109
// {
110+
// 'empty': {},
111+
// 'emptyArray: [],
110112
// 'nullValue': null,
111113
// 'undefinedValue': undefined
112114
// }

docs/ko/reference/object/flattenObject.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ const emptyCase = {
107107
const result = flattenObject(emptyCase);
108108
console.log(result);
109109
// {
110+
// 'empty': {},
111+
// 'emptyArray: [],
110112
// 'nullValue': null,
111113
// 'undefinedValue': undefined
112114
// }

docs/reference/object/flattenObject.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ const emptyCase = {
107107
const result = flattenObject(emptyCase);
108108
console.log(result);
109109
// {
110+
// 'empty': {},
111+
// 'emptyArray: [],
110112
// 'nullValue': null,
111113
// 'undefinedValue': undefined
112114
// }

docs/zh_hans/reference/object/flattenObject.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ const emptyCase = {
107107
const result = flattenObject(emptyCase);
108108
console.log(result);
109109
// {
110+
// 'empty': {},
111+
// 'emptyArray: [],
110112
// 'nullValue': null,
111113
// 'undefinedValue': undefined
112114
// }

src/object/flattenObject.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,18 @@ describe('flattenObject', function () {
7878
});
7979
});
8080

81+
it('handles empty arrays correctly', () => {
82+
const result = flattenObject({
83+
a: {
84+
b: [],
85+
},
86+
});
87+
88+
expect(result).toEqual({
89+
'a.b': [],
90+
});
91+
});
92+
8193
it('handles `Buffer`s correctly', () => {
8294
const result = flattenObject({
8395
a: {

src/object/flattenObject.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function flattenObjectImpl(object: object, prefix: string, delimiter: string): R
5353
continue;
5454
}
5555

56-
if (Array.isArray(value)) {
56+
if (Array.isArray(value) && value.length > 0) {
5757
Object.assign(result, flattenObjectImpl(value, prefixedKey, delimiter));
5858
continue;
5959
}

0 commit comments

Comments
 (0)