Javascript onChange检查对象的所有属性是否存在且不是未定义或空字符串

Javascript onChange检查对象的所有属性是否存在且不是未定义或空字符串,javascript,reactjs,ecmascript-6,lodash,Javascript,Reactjs,Ecmascript 6,Lodash,这是一个非常常见的用法,您必须检查是否所有字段都已填充。我使用reactonChange并将e.target.name作为对象的键 就像我做的console.log(this.state.user)我会得到 user : { name:"something", age:1 } 但如何检查所有内容是否都不是空的或空的?我像user.name!=未定义,但我的密钥大于10。有没有更好的lodash方法可以做到这一点 我是这样设定状态的 const user = this.state

这是一个非常常见的用法,您必须检查是否所有字段都已填充。我使用react
onChange
并将
e.target.name
作为对象的键

就像我做的
console.log(this.state.user)我会得到

user : {
    name:"something",
    age:1
}
但如何检查所有内容是否都不是空的或空的?我像
user.name!=未定义
,但我的密钥大于10。有没有更好的lodash方法可以做到这一点

我是这样设定状态的

const user = this.state.user;
user[field] = event.target.value;

this.setState({
    user
});

您可以迭代对象的值并使用方法

const用户={
名字:“某物”,
年龄:1
}
const allExist=Object.keys(用户)
.减少(功能(蓄能器、电流){
返回累加器&&!!当前值
},对);

console.log(allExist)
您可以使用
Object.keys
方法-循环生成的数组并检查每个键是否具有有效值:

const用户={
姓名:“汤姆”,
年龄:28,
地址:空,
职业:“程序员”,
兴趣:“JavaScript”,
dob:未定义
}
常量键=对象键(用户);
for(设i=0;i}
需要reduce的第二个参数是真的吗?它是初始值。如果没有提供初始值,将使用数组中的第一个元素。我使用它是因为它确保我总是得到一个bool值作为输出,即使对象中有一个属性?我可以查看您的完整
用户
对象吗?
const allExist = Object.values(this.state.user)
  .reduce(function(accumulator, current){
   return accumulator && !!current
  }, true);