如何解决在对象中查找空值和空值并在计数器javascript中更新
我有以下对象,并且我想计算对象中的空值或null
并在该对象的属性计数器中对其进行更新。
例如我有这个下面的对象。
var userData = {
firstName: "Eric",lastName: null,age: "",location : "San francisco",country: "USA",counter: 0
}
遍历此对象的结果将使我们知道lastName和age为空或为null,因此应更新计数器:2指示2个字段为空。
obj userData = {
firstName: "Eric",counter: 2
}
我该如何实现?
解决方法
您可以使用Set
过滤对象的值,以存储所有被认为是空的值。
const userData = {
firstName: "Eric",lastName: null,age: "",location : "San francisco",country: "USA",counter: 0
};
const emptyValues = new Set(["",null,undefined]);
userData.counter = Object.values(userData).filter(x => emptyValues.has(x)).length;
console.log(userData);
我们可以使用reduce
代替filter
来最大程度地减少内存使用。
const userData = {
firstName: "Eric",undefined]);
userData.counter = Object.values(userData).reduce((acc,curr) => acc + emptyValues.has(curr),0);
console.log(userData);
,
您可以使用函数Objec.values
访问对象的值,并使用函数Array.prototype.reduce
计算空值。
const userData = { firstName: "Eric",counter: 0},emptyValues = ["",null];
userData.counter = Object.values(userData).reduce((r,c) => r + emptyValues.includes(c),0);
console.log(userData);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。