检查多个变量是否为非空字符串的多或运算写法有没有简洁简写?
简洁实现方案
1. 单次使用无需复用的场景
直接用数组some方法替换多段||判断,和原写法逻辑完全等价,运行性能无差异,可读性更好也更短:
[startsWith, contains, endsWith].some(v => v !== '')
如果后续需要新增同类判断条件,只需往数组内追加变量即可,不需要继续堆叠||运算符。
2. 多场景复用的场景
可以抽一个极简的工具函数,没有过度设计成本,调用时更清爽:
// 工具函数定义,全局只需写一次 const hasNonEmptyStr = (...args) => args.some(v => v !== '') // 业务中调用的写法 hasNonEmptyStr(startsWith, contains, endsWith)
适配场景的额外简化
如果你的业务逻辑中,undefined、null、0、false这类值也属于需要判定为「空」的范围,可以进一步简化判断逻辑,直接用Boolean做判断:
// 等价于判断所有变量中存在至少一个真值 [startsWith, contains, endsWith].some(Boolean)
注意如果你的业务允许0、false这类假值作为合法有效值,不要用这个简化写法,避免逻辑错误。
内容的提问来源于stack exchange,提问作者user14551057
相关产品推荐
相关产品推荐

