这是一种非常常见的用法,您必须检查是否所有字段都已填满。我使用了反应onChange
并将e.target.name
作为我对象的关键。
console.log(this.state.user);
我会得到
user : {
name:"something",
age:1
}
但是如何检查一切是否为空或为空?我像user.name != undefined
手动检查,但我的密钥超过10.有没有更好的lodash方法来做到这一点?
我设置了这样的状态
const user = this.state.user;
user[field] = event.target.value;
this.setState({
user
});
答案 0 :(得分:0)
您可以迭代对象的值并使用reduce
方法。
const allExist = Object.values(this.state.user)
.reduce(function(accumulator, current){
return accumulator && !!current
}, true);
const user = {
name:"something",
age:1
}
const allExist = Object.keys(user)
.reduce(function(accumulator, current){
return accumulator && !!current
}, true);
console.log(allExist);
答案 1 :(得分:0)
您可以使用Object.keys
方法-循环生成的数组并检查每个键是否具有有效值:
const user = {
name: "Tom",
age: 28,
address: null,
occupation: "Programmer",
interest: "JavaScript",
dob: undefined
}
const keys = Object.keys(user);
for (let i = 0; i < keys.length; i++) {
if (user[keys[i]] == null) {
console.log(`${keys[i]} needs a value`);
}
}