Javascript onChange检查对象的所有属性是否存在且不是未定义或空字符串
这是一个非常常见的用法,您必须检查是否所有字段都已填充。我使用reactJavascript 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
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);