【发布时间】:2021-01-22 20:21:04
【问题描述】:
我正在学习 ES5 中的数组/对象,现在我有这样的代码,它返回过滤后的非空键/值的对象:
var object = [{"notEmptyValue":"1","emptyValue1":"","notEmptyValue2":"1","emptyValue2":""}];
function removeEmpty(data) {
Object.keys(data).forEach(function(key) {
(data[key] && typeof data[key] === 'object') && removeEmpty(data[key]) ||
(data[key] === '' || data[key] === null) && delete data[key]
});
return JSON.stringify(data);
}
//returns [{"notEmptyValue":"1","notEmptyValue2":"1"}]
//but I would like [{"emptyValue1":"","emptyValue2":""}]
//OR the best ['emptyValue1', 'emptyValue2']
但是,我需要相反的,我需要返回空的。在最好的情况下,只有空的键数组(参见代码 sn-p)。我如何做到这一点?
【问题讨论】:
-
您使用Object.entries 而不是
Object.keys,然后过滤掉任何具有非空字符串值的内容。 (或者如果您不关心密钥,Object.values()) -
为什么你的对象在 [... ] 之间?
-
@BülentAkgül 因为我试图将它从服务器显示到客户端,它是纯对象,但它给了我 [object Object] 所以当我对 JSON.stringify[data] 执行结果时将对象放入数组中,以便我可以看到它。不知道我解释的对不对,我是新手
标签: javascript arrays object filtering