首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript深度清空对象

JavaScript深度清空对象
EN

Stack Overflow用户
提问于 2014-10-30 19:25:40
回答 1查看 776关注 0票数 0

寻找直接对对象进行深度清理原始属性值的简单解决方案,例如:

代码语言:javascript
复制
var filled = {
   levelOneObj: {
      property: 'primitive'
      levelTwoObj: {
         property: 'primitive value'
      },
      levelTwoArray: ['primitive', 123]
   }
}

cleanPrimitives(filled);


var filled = {
   levelOneObj: {
      levelTwoObj: {
      },
      levelTwoArray: []
   }
}

如果库中已经有了解决方案,我不想重新发明方向盘--感谢任何解决方案或帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-30 19:43:48

这应该是可行的:

代码语言:javascript
复制
function clean_obj(obj) {
    for(var k in obj) {
        if(typeof obj[k] == "object"
           && obj[k] !== null
           && !(obj[k] instanceof Array)
           && !(obj[k] instanceof String)
           && !(obj[k] instanceof Number)) {

            clean_obj(obj[k]);
            continue;
        }

        switch(typeof obj[k]) {
            case 'string':
            case 'number':
                delete obj[k];
                break;

            default:
                obj[k] = [];
        }
    }
}

用法:

代码语言:javascript
复制
var my_obj = {..};

clean_obj(my_obj);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26661642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档