如何解决如何返回对象中只有空值的键数组?
我正在学习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']
但是,我需要相反的操作,在这里我需要返回空的。在最佳情况下,只有键数组为空(请参见代码段)。我该如何实现?
解决方法
使用Object.keys()
获取对象键,使用filter
仅保留空键。
更新:要对一组对象进行操作,我使用了map
并从每个对象中返回了空键。
let objects = [{
"notEmptyValue": "1","emptyValue1": "","notEmptyValue2": "1","emptyValue2": ""
},{
"notEmptyValue": "1","emptyValue3": "","emptyValue4": ""
}
];
let emptyKeys = objects.map(object => Object.keys(object).filter(key => object[key] === ''));;
console.log(emptyKeys);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。