我正在尝试使用lodash
找到最佳方法来遍历(深度遍历)一个对象,并将遇到的任何子对象转换为array
并附加它。
鉴于此对象:
let testObj = {
'name': 'testdata',
'active': false,
'nestedData': {
0: {
0: { 'name': '1', 'value': 1 },
1: { 'name': '2', 'value': 1 },
2: { 'name': '3', 'value': 1 },
3: { 'name': '4', 'value': 1 },
},
1: {
0: { 'name': '5', 'value': 1 },
1: { 'name': '6', 'value': 1 },
2: { 'name': '7', 'value': 1 },
3: { 'name': '8', 'value': 1 },
},
},
'moreData': {
'0': { 'name': 'test1', 'value': 1 },
'1': { 'name': 'test2', 'value': 2 },
'2': { 'name': 'test3', 'value': 3 },
'3': { 'name': 'test4', 'value': 4 },
},
moreData2: {
'0': {
'name': 'test1',
'arr': ['string1', 'string2', 'string3'],
'value': false,
},
'1': {
'name': 'test2',
'arr': ['string1', 'string2', 'string3'],
'value': true,
}
}
}
将子项作为数组附加到对象的最佳方法是什么,如下所示:
let testObjResult = {
'name': 'testdata',
'active': false,
'nestedData': {
0: {
0: { 'name': '1', 'value': 1 },
1: { 'name': '2', 'value': 1 },
2: { 'name': '3', 'value': 1 },
3: { 'name': '4', 'value': 1 },
},
1: {
0: { 'name': '5', 'value': 1 },
1: { 'name': '6', 'value': 1 },
2: { 'name': '7', 'value': 1 },
3: { 'name': '8', 'value': 1 },
},
},
'nestedDataArray': [
[
{ 'name': '1', 'value': 1 },
{ 'name': '2', 'value': 1 },
{ 'name': '3', 'value': 1 },
{ 'name': '4', 'value': 1 },
],
[
{ 'name': '5', 'value': 1 },
{ 'name': '6', 'value': 1 },
{ 'name': '7', 'value': 1 },
{ 'name': '8', 'value': 1 },
],
],
'moreData': {
'0': { 'name': 'test1', 'value': 1 },
'1': { 'name': 'test2', 'value': 2 },
'2': { 'name': 'test3', 'value': 3 },
'3': { 'name': 'test4', 'value': 4 },
},
'moreDataArray': [
{ key: '0', 'name': 'test1', 'value': 1 },
{ key: '1', 'name': 'test2', 'value': 2 },
{ key: '2', 'name': 'test3', 'value': 3 },
{ key: '3', 'name': 'test4', 'value': 4 },
],
moreData2: {
'0': {
'name': 'test1',
'arr': ['string1', 'string2', 'string3'],
'value': false,
},
'1': {
'name': 'test2',
'arr': ['string1', 'string2', 'string3'],
'value': true,
}
},
moreData2Array: [
{
'key': '0',
'name': 'test1',
'arr': ['string1', 'string2', 'string3'],
'value': false,
},
{
'key': '1',
'name': 'test2',
'arr': ['string1', 'string2', 'string3'],
'value': true,
}
]
}
新数组名称/键与原始对象相同,但附加“数组”。如上所述转换为数组时还可以选择保留对象键。
我尝试使用_.mapValues
递归调用_.mapKeys
_.toArray
但不起作用。也许以某种方式使用_.transform
?任何指导将不胜感激。