javascript - 删除嵌套的 JavaScript 对象
问题描述
我一直在尝试从 JavaScript 对象中删除嵌套对象,但没有成功,并且无法通过搜索以前的帖子找到正确的答案。
这是我一直在尝试做的事情。
<code id='code'></code>
var myobj = {
"children": [
{
"name": "albuterol ",
"children": [
{
"name": "albuterol - fluticasone ",
"children": [
{
"name": "prednisone ",
"children": [
{
"name": "dexamethasone ",
"children": [],
"size": 1,
"colname": "CONCEPT_NAME.4"
}
],
"size": 3,
"colname": "CONCEPT_NAME.3"
}
],
"size": 4,
"colname": "CONCEPT_NAME.2"
}]}]}
function deleteObject(myobj) {
var x = delete myobj.colname
return (myobj.name, myobj.children)
}
document.getElementById('code').innerText = JSON.stringify(deleteObject(myobj))
我想删除对象colname
。我错过了什么还是代码完全不正确?
解决方案
您需要一个递归函数来删除该属性。
var myobj = {
"children": [
{
"name": "albuterol ",
"children": [
{
"name": "albuterol - fluticasone ",
"children": [
{
"name": "prednisone ",
"children": [
{
"name": "dexamethasone ",
"children": [],
"size": 1,
"colname": "CONCEPT_NAME.4"
}
],
"size": 3,
"colname": "CONCEPT_NAME.3"
}
],
"size": 4,
"colname": "CONCEPT_NAME.2"
}]}]}
function deleteColnameRecursive(obj){
delete obj.colname
if(obj.children){
for(var i=0;i<obj.children.length;i++)
deleteColnameRecursive(obj.children[i]);
}
}
deleteColnameRecursive(myobj);
console.log(myobj);
推荐阅读
- android - Android:从 SD 卡中文件的 Uri 获取文件路径
- c++ - 给定 3 个正整数,求最大步数将它们减少到 0
- spring-boot - 如何在 Spring WebClient 中一次设置多个标头?
- asp.net-core - 如何在asp.net core 3.0+中保存记录时保存“当前登录用户”的“部门ID”和“用户ID”?
- mysql - 当我想安装 MySQL 时,我遇到了“root 帐户密码”这个问题,我忘记了
- angular - ionic 4中的乌尔都语文本到语音
- laravel - 此路由不支持 GET 方法。支持的方法:PATCH。进行更新时
- gitlab - Gitlab - 如何允许多项目管道在触发器回购中创建分支
- python-3.x - 在 Python Pandas 中,为什么替换列中的所有元素仍然不会更改报告的列类型?
- c++ - 如何检查六角管拼图连接?