javascript - 对象分配删除一些属性然后创建新对象

标签 javascript

尝试从对象中删除不必要的属性:

{
    "1502134857307": {
        "bio": "",
        "category": {
            "category1": true
        },
        "name": "dog",
        "snapchat": "",
        "twitter": ""
    },
    "1502134908057": {
        ...
    }
}

我想让它看起来像这样:

{
    "1502134857307": {
        "category": {
            "category1": true
        },
        "name": "dog"
    },
    "1502134908057": {
        ...
    }
}

我已经尝试过:不起作用

var newObejct = Object.assign({}, $r.props.data);
delete newObejct.bio;

最佳答案

来,试试这个。根据您想要完成的任务,这将递归地迭代嵌套对象并删除任何空字符串属性。请随意修改条件以删除对象中不需要的任何其他内容。

let clutteredObj = {
    "1502134857307": {
        "bio": "",
        "category": {
            "category1": true
        },
        "name": "dog",
        "snapchat": "",
        "twitter": ""
    },
    "1502134908057": {
        "bio": "",
        "category": {
            "category1": true
        },
        "name": "dog",
        "snapchat": "",
        "twitter": ""
    }
}

function clearEmptyStrings(obj) {
  Object.keys(obj).forEach(key => {
    if (typeof obj[key] === 'object') {
      return clearEmptyStrings(obj[key])
    }
    if (obj[key] === "") {
      delete obj[key]
    }
  })
}

clearEmptyStrings(clutteredObj);

console.log(clutteredObj)

关于javascript - 对象分配删除一些属性然后创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45639113/

相关文章:

javascript - Jquery 侧边栏滑出/滑入无法在本地工作

javascript - 如何阻止激烈的 Javascript 循环卡住浏览器

javascript - Adobe Edge 预加载器 JQuery/$ 未定义

javascript - es6代码剪断不清楚

javascript - 具有深色不透明度的文本叠加图像 React Native

javascript - 图像加载错误

javascript - 页面上显示的 Div,除非按下按钮,否则不应显示

javascript - Angular 绑定(bind)在任何标签内都不起作用

javascript - 渐进增强 - Node.js, Backbone.js

javascript - 使用 Keen 时,使用 JavaScript 以每月为间隔的绝对时间范围查询不会按预期拆分