如果我不知道它的深度,如何删除另一个对象内的对象?
Json 对象
{
"foo": {
"1" : {
"bar" : "a",
"foo" : {
"2" : "aa"
}
},
"3" : {
"bar" : "b",
"foo" : {
"4" : "bb"
}
}
}
}
假设我想删除“4”,但“4”可能是第一级子级或位于另一个子级内?
最佳答案
这是另一种递归解决方案,我的版本和adeneo的区别在于我的版本一旦找到匹配的 key 就会停止。如果您知道同一个键不会多次出现,或者您可以每次调用只删除每个出现的一个,那么这会更有效:
function remove(obj, key) {
for (var k in obj) {
if (k == key) {
delete obj[key];
return true;
} else if (typeof obj[k] === "object") {
if (remove(obj[k], key)) return true;
}
}
return false;
}
关于javascript - 在不知道深度的情况下移除另一个对象内的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18410706/