我想删除所有值为N/A,-或空字符串的键,如果其中一个值出现在数组中,我想从数组中删除该项,例如,我的示例输出如下:{"name":{"first":"Daniel","middle":"N/A","last":"Smith"},"age":45}
我期望的输出如下所示{"name":{"first":"Daniel","last":"Smith"},"age":45}
我试过这个方法,但似乎不起作用:
function recurse(resp) {
let data;
for (var x in resp) {
data = resp[x]
if (data === 'null' || data === null || data === '-' || typeof data === 'undefined' || (data instanceof Object && Object.keys(data).length == 0)) {
delete resp[x];
}
if (data instanceof Object) {
data = recurse(data);
}
}
return resp;
}
5条答案
按热度按时间dojqjjoe1#
我添加了一些额外的检查,似乎对更多嵌套对象工作良好。
如果对你有效,请告诉我!谢谢
uajslkp62#
它正在工作,只需要添加
N/A
验证nkhmeac63#
为了避免超出最大堆栈大小的错误,需要重构代码以迭代地计算对象。我已经调整了代码以包含@Carlos1232的建议,并迭代对象上的值。
q35jwt9p4#
你需要写一个递归函数来遍历嵌套字典的json树,使其成为泛型。我演示了如何使用to键从嵌套字典中删除元素:父密钥和子密钥。
cig3rfwq5#