javascript - 如何检查对象的有效性?
问题描述
我有以下对象:
{
"title": {
"type": null,
"message": null
},
"first name": {
"type": null,
"message": null
},
"lastName": {
"type": null,
"message": null
},
}
如何检查其中一个嵌套对象是否具有属性的值error
(字符串类型)type
。
如果其中一个对象的值为error
,type
我的方法isValid()
应该返回布尔值 false。
该对象在 useState 挂钩中使用,如下所示:
const [validateObj, setValidateObj] = useState(sampleObj);
..我想使用这种方法:
const isValid = (): boolean => {
return // hmm?
};
解决方案
以下应该做你正在寻找的东西:
const isValid = (): boolean =>
Object.values(validateObj) // get the list of values
.every(o => o.type !== "error"); // check that no type is "error"
每个文档:
every() 方法测试数组中的所有元素是否通过提供的函数实现的测试。它返回一个布尔值。
由于您在 React 组件中使用它,因此您不希望函数在每次渲染时都进行更改,而是仅在更改时validateObj
更改。为此,您可能需要查看useCallback挂钩的文档。
推荐阅读
- python - Python 中的位运算符
- html - 文字和图像重叠?
- reactjs - React App 在 localhost 和 Heroku 中的显示方式不同
- kubernetes - 本地 Kubernetes 上的 Nifi。收到请求类型 GET 的无效密钥
- javascript - 将 toStringTag 与 Object.defineProperties 一起使用时出现意外结果
- scala - 比较数组中的相同案例类数据
- python - 如何分离从python运行的linux命令
- r - 非准引用上下文中的 Tidyeval (psych::describeBy(group))
- azure-resource-manager - 如何获取存储容器的 resourceId?
- python - 使用 pymysql 连接到计算机上的本地 SQL 数据库