有点奇怪的请求,但我需要一些帮助来编写一个函数,该函数将转换一些看起来像这样的JSON(非常人为的示例抱歉):{ "userDetails": [ { "name": "DOM", "age": 30, "comments": [ { "text": "Text" }, { "text": "HELLO", "stuff": [ { "name": "DOM" } ] } ] } ], "items": [ { "name": "A" }, { "name": "B" } ]}我想要:{ "userDetails": { "name": "DOM", "age": 30, "comments": [ { "text": "Text" }, { "text": "HELLO", "stuff": { "name": "DOM" } } ] } "items": [ { "name": "A" }, { "name": "B" } ]}因此,仅对具有 1 个元素的数组进行去害,仅此而已。希望使用洛达什褶皱的解决方案。
1 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
简单的树遍历和展开数组长度 1
注意:就地发生突变
data={
"userDetails": [{
"name": "DOM",
"age": 30,
"arr": [{"c":"c"}]
}],
"items": [
{
"name": [{"A": [[[["A"],["B"]]]]}]
},
{
"name": "B"
}
]
}
walk = (node,k) => {
if(typeof node[k] === 'object')
for(const key of Object.keys(node[k])) walk(node[k],key)
if(Array.isArray(node[k]) && node[k].length === 1)
node[k]=node[k][0]
}
walk({data},'data')
console.log(data)
添加回答
举报
0/150
提交
取消