从 JSON 对象中删除空属性

Removing null properties from JSON Object

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

var items = [
{name:"Nick"},
{name:"Lee"},
{name:"Jenny"},
{name:null},
{name:null},
{name:null},
{name:"Graham"},
{name:"Erica"}]

我想要一个名称已删除空值的新对象。 Angular 或 Underscore js

中是否有现成的函数

可以直接在javascript

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

这看起来有点奇怪,因为您依赖 javascript 的真实性将 null 呈现为 false,而将其他任何内容呈现为 'true'

您可以通过以下代码从 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);

我不太确定我理解你的问题。 如果你真的想从对象中移除(删除)属性,你可以遍历它的键并使用 delete.

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

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

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