JavaScript无if语句多条件判断及addText返回值异常修复
问题原因分析
你写的原逻辑使用了或运算符||,只要任意一个条件成立就会触发返回data的逻辑:
当入参data = 'N/T'时:
- 第一个判断
data !== 'N/T'结果为false - 第二个判断
data === 0结果为false - 第三个判断
data(即判断非空字符串'N/T'的布尔值)结果为true
因此整个三元表达式的条件整体为true,直接返回了'N/T',不符合预期。
解决方案
你需要将逻辑运算符从||改为&&,即只有三个条件同时满足时才返回data,否则返回备选值,同时建议加括号处理运算符优先级避免逻辑异常:
const addText = (data, addAlternative) => { return (data !== 'N/T' && (data === 0 || data)) ? data : addAlternative; }; console.log(addText('N/T', 'alternative')) // 输出 alternative
覆盖场景验证
可通过以下测试用例确认逻辑符合要求:
addText('N/T', 'alt')→ 返回altaddText(0, 'alt')→ 返回0(保留数字0的合法场景)addText('', 'alt')→ 返回altaddText(null, 'alt')→ 返回altaddText(undefined, 'alt')→ 返回altaddText('正常文本', 'alt')→ 返回正常文本addText(123, 'alt')→ 返回123
内容的提问来源于stack exchange,提问作者Asking
相关产品推荐
相关产品推荐

