如何检测JavaScript对象中是否存在非null值?.some方法返回异常
问题分析与解决
你的代码逻辑错在判断对象的键(key)是否非null,但对象的键本身都是字符串类型(比如"content-type"、phone),永远不可能是null,所以some方法必然返回true,和你要检查对象值(value)的需求完全不符。
正确写法
要检查对象中是否存在非null的值,应该用Object.values()获取所有属性值,再配合some方法判断:
const err = { "content-type": null, phone: null, firstName: null, lastName: null, email: null, website: null, supplier: null } // 检查是否存在非null的错误值 const hasErrors = Object.values(err).some(value => value !== null) console.log(hasErrors) // 所有值为null时返回false,存在非null值时返回true
扩展:适配表单常见错误场景
如果表单错误还包含空字符串、undefined这类情况,可以调整判断条件,同时排除这些无效值:
const hasErrors = Object.values(err).some(value => value != null && value !== '')
value != null会同时排除null和undefined,再加上排除空字符串,更符合实际表单验证的需求。
内容的提问来源于stack exchange,提问作者Richard Bridge
相关产品推荐
相关产品推荐

