JavaScript使用&&运算符做条件判断时如何获取空值对应的对象键名
实现方案
你原来的switch写法无法定位具体缺失的键:dataset.dataone && dataset.datatwo && dataset.datathree运算只会返回第一个假值,不会携带对应键名信息,且遇到第一个假值就停止判断,无法识别后续的空值字段。
可以通过遍历对象键、统一做空值校验的方式实现精准提示,代码如下:
var dataset = { "dataone": "dataonevalue", "datatwo": "datatwovalue", "datathree":"" } // 定义空值校验规则:匹配空字符串、null、undefined const isEmptyValue = val => val === '' || val === null || val === undefined // 遍历所有键,收集所有符合空值规则的键 const emptyKeys = Object.keys(dataset).filter(key => isEmptyValue(dataset[key])) if (emptyKeys.length) { // 支持单/多个缺失键同时提示,仅需提示第一个的话取emptyKeys[0]即可 console.log(`data missing in ${emptyKeys.join(', ')}`) } else { // 原有default分支逻辑 dataset.dataone = "dataonevalue" dataset.datatwo = "datatwovalue" dataset.datathree = "datathreevalue" }
如果不需要校验对象上的所有键,只需校验指定的必填字段,可以将遍历来源替换为自定义的必填键数组,避免无关字段干扰校验:
// 仅校验指定的3个必填字段 const requiredKeys = ['dataone', 'datatwo', 'datathree'] const emptyKeys = requiredKeys.filter(key => isEmptyValue(dataset[key]))
内容的提问来源于stack exchange,提问作者Gem
相关产品推荐
相关产品推荐

