繁体   English   中英

从对象中删除空值或空值

[英]Removing empty or null values from an object

我有以下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);

控制台日志返回以下错误: Uncaught TypeError: Cannot read property 'length' of undefined

我如何正确进行这项工作?

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

 var items = [{ item1: '', item2: 'foo' }, { item1: 'bar', item2: '' }]; items.forEach(function (o) { Object.keys(o).forEach(function (k) { if (o[k] === '' || o[k] === null) { delete o[k]; } }); }); console.log(items); 

对于使用jQuery .each的解决方案:

 var items = [{ item1: '', item2: 'foo' }, { item1: 'bar', item2: '' }]; $.each(items, function(i, v) { $.each(v, function(i2, v2) { if (v2 === "" || v2 === null) { delete v[i2]; } }); }); console.log(items); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

您的delete部分在这里全部错误:

delete items[i2];

您试图从items而不是从项目本身删除属性(例如item1 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM