如何检测对象中的空字符串并同步设置至另一个错误对象?
解决方案
直接通过遍历objectInfo的属性键,匹配objectError中对应的错误字段即可实现需求,以下是具体实现:
const objectInfo = {firstName:"", lastName:"Doe", age:""}; const objectError = { firstNameError: false, lastNameError: false, ageError: false }; // 遍历更新错误状态 Object.keys(objectInfo).forEach(key => { const errorField = `${key}Error`; // 确保objectError存在对应错误字段,避免无意义赋值 if (objectError.hasOwnProperty(errorField)) { // 字段为空字符串时设为true,否则保持/设为false objectError[errorField] = objectInfo[key] === ""; } }); console.log(objectError); // 输出结果:{ firstNameError: true, lastNameError: false, ageError: true }
逻辑说明
- 用
Object.keys(objectInfo)获取objectInfo的所有属性名,遍历每个字段 - 对每个属性名拼接出对应的错误字段名(比如
firstName对应firstNameError) - 通过
hasOwnProperty判断objectError中是否存在该错误字段,避免出现不存在的属性赋值 - 直接将
objectInfo[key] === ""的布尔结果赋值给错误字段,空字符串时为true,非空时为false
扩展调整
如果需要兼容其他空值情况(比如null、undefined),可以把判断条件改成:
objectError[errorField] = !objectInfo[key];
内容的提问来源于stack exchange,提问作者Jonas Law
相关产品推荐
相关产品推荐

