javascript - 使用每个 es6 对象检查每个属性的条件

标签 javascript reactjs ecmascript-6

我正在使用 React 并且我有这样的状态

this.state = {
  form: {
    name: {required: true, filled: false, value: ''},
    age: {required: true, filled: false, value: ''},
    dob: {required: false, filled: false, value: ''}
  }
}

我想检查是否每个表单字段都已填写,我尝试过这个

const formValid = Object.keys(this.state.form).filter(o=>{
  return o.required
}).every(o=> {
  return o.filled!==null && o.filled!==''
})

我知道这是错误的,因为 Object.keys 只是返回键,我希望状态是数组,这会让我的生活更轻松,但是如果我不想改变状态的结构怎么办?我该怎么做?

最佳答案

我会将Array#everyObject.keys一起使用

使用Object.keys,您可以通过引用它所属的对象来获取值,例如。 this.state.form[key]

const formValid = 
  Object.keys(this.state.form)
    .every(key => (
      this.state.form[key].required && 
      this.state.form[key].filled !== null && 
      this.state.form[key].filled !== ''
    ))

如果您需要失败的引用,我会将 every 更改为 filter

关于javascript - 使用每个 es6 对象检查每个属性的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48366609/

相关文章:

javascript - ReactJS, react 路由器: Ecxclude Navigation Menu in Login Page

javascript - 将所有http请求和React Routes先通过 Node 后端进行session验证再返回路径

javascript - Grunt Uglify 在 ES6 上失败...

javascript - TouchableHighlight underlayColor 不起作用。颜色只是不改变

javascript - 使用 AJAX 调用函数

javascript - 使用 Canvas 调整图像大小而不失真

javascript - reactjs axios 无法获取 api 数据

javascript - 使用 es6 和 React 未定义函数

javascript - 不同变量的单一数据类型

javascript - 返回时,单选按钮之间的导航不起作用