【发布时间】:2016-07-26 09:38:46
【问题描述】:
我有以下格式的对象数组:
{
"country": "India",
"children": [
{
"name": "Karnataka",
"type": "State",
"children": [
{
"name": "",
"type": "city"
},
{
"name": "Bangalore",
"type": "city"
},
{
"name": "Mangalore",
"type": "city"
}
]
},
{
"name": "Kerala",
"type": "State",
"children": [
{
"name": "",
"type": "city"
}
]
},
{
"name": "Maharashtra",
"type": "State",
"children": [
{
"name": "Mumbai",
"type": "city"
},
{
"name": "Pune",
"type": "city"
}
]
}
]
}
每个对象都有一个包含元素详细信息的子元素。我需要递归遍历 json 对象并删除所有 name 为空字符串的节点,直到根。对于上述 json 格式,输出应如下所示:
{
"country": "India",
"children": [
{
"name": "Karnataka",
"type": "State",
"children": [
{
"name": "Bangalore",
"type": "city"
},
{
"name": "Mangalore",
"type": "city"
}
]
},
{
"name": "Kerala",
"type": "State",
"children": [
]
},
{
"name": "Maharastra",
"type": "State",
"children": [
{
"name": "Mumbai",
"type": "city"
},
{
"name": "Pune",
"type": "city"
}
]
}
]
}
如何使用 Underscorejs 在 javascript 中递归执行此操作。
【问题讨论】:
-
@RayonDabre—在我看来 reduceRight 和删除不需要的成员更好,但是 underscore.js 有吗?如果没有,那就是内置的。
-
This SO question 可能会帮助你
-
我不知道保留原始数据对象对您来说有多重要,但是如果您采用数组函数的方式,您可能会丢失它,除非您首先通过某种方式克隆该对象。
标签: javascript arrays underscore.js javascript-objects