Javascript 从对象中删除空值或空值

Javascript 从对象中删除空值或空值,javascript,jquery,arrays,json,object,Javascript,Jquery,Arrays,Json,Object,我有以下JavaScript对象: var items = [ { item1: '', item2: 'foo' }, { item1: 'bar' item2: '' } ]; 我想删除值为空或null的所有键/值对。以下各项似乎未按预期工作: $.each(items, function(i,v){ $.each(items[i], function(i2, v2){

我有以下JavaScript对象:

var items = [
    {
        item1: '',
        item2: 'foo'
    },
    {
        item1: 'bar'
        item2: ''
    }
];
我想删除值为空或null的所有键/值对。以下各项似乎未按预期工作:

$.each(items, function(i,v){
    $.each(items[i], function(i2, v2){
        if (v2 === "" || v2 === null){
            delete items[i2];
        }
    });
});
console.log(items);
控制台日志返回以下错误:
未捕获类型错误:无法读取未定义的属性“length”


如何正确执行此操作?

使用纯Javascript,您可以迭代数组和所有键,检查空字符串或
null
值,然后根据需要删除

var items=[{item1:'',item2:'foo'},{item1:'bar',item2:'}];
项目。forEach(功能(o){
Object.keys(o).forEach(函数(k){
如果(o[k]==''| | o[k]===null){
删除o[k];
}
});
});

控制台日志(项目)使用普通Javascript,可以迭代数组和所有键,检查空字符串或
null
值,然后删除if

var items=[{item1:'',item2:'foo'},{item1:'bar',item2:'}];
项目。forEach(功能(o){
Object.keys(o).forEach(函数(k){
如果(o[k]==''| | o[k]===null){
删除o[k];
}
});
});

控制台日志(项目)。每个

var项目=[{
第1项:'',
第2项:“foo”
}, {
第1项:“酒吧”,
项目2:'
}];
$。每个(项目、功能(i、v){
$。每个(v,函数(i2,v2){
如果(v2==“”| | v2==null){
删除v[i2];
}
});
});
控制台日志(项目)

使用jQuery的解决方案的
。每个

var项目=[{
第1项:'',
第2项:“foo”
}, {
第1项:“酒吧”,
项目2:'
}];
$。每个(项目、功能(i、v){
$。每个(v,函数(i2,v2){
如果(v2==“”| | v2==null){
删除v[i2];
}
});
});
控制台日志(项目)

我想我不必要地过度复杂了这一点,你的解决方案要好得多。我想我不必要地过度复杂了这一点,你的解决方案要好得多。