从JSON对象中删除null属性

时间:2016-01-12 07:53:21

标签: angularjs underscore.js

我有一个像下面这样的JSON对象,我想从该Object中删除所有键值对象。我的应用程序使用AngularJS。 例如下面是我的对象

super(cls, self)

我想要一个名称删除了空值的新对象。 Angular或Underscore js中是否存在任何现成函数

3 个答案:

答案 0 :(得分:3)

你可以直接在javascript

中完成
items.filter( i => i.name );
// or in ES5
items.filter(function(i) {return i.name});

这看起来有点奇怪,因为你依靠javascript的真实性将null渲染为false,而其他任何东西都是' true'

答案 1 :(得分:0)

您可以通过以下代码从 json 对象中删除null和空字符串值。

我有 json 对象调用sjonObj,并希望删除所有null和空字符串。

sjonObj = (function filter(obj) {
    var filtered = _.pick(obj, function (v) { return v !== '' && v !== null; });
    return _.cloneDeep(filtered, function (v) { return v !== filtered && _.isPlainObject(v) ? filter(v) : undefined; });
})(sjonObj);

答案 2 :(得分:0)

我不太确定我理解你的问题。 如果您想要从对象中删除(删除)属性,可以迭代其键并使用delete

var obj = {
    a: 1,
    b: 2,
    c: 3
};

Object.keys(obj).forEach(key => {
    delete obj[key];
});

console.log(obj); // prints empty object { }