ES6字符串处理:存在值追加逗号、不存在则替换的正确实现方法
问题原因
你的原有代码只在判断属性存在后输出了逗号,完全没有拼接属性本身的字符串值,自然无法得到预期输出。且逐段拼接模板字符串的方式扩展性差,后续新增字段时维护成本很高。
推荐实现方案
优先用数组收集有效项再统一处理,逻辑更清晰:
// 1. 按规则整理所有需要展示的字段 const items = [ object.home, object.car, object.airplane || object.helicopter // 自动匹配飞机/直升机的特殊规则 ] // 2. 过滤不存在的空值,给每个有效项追加逗号后拼接 const data = items .filter(Boolean) // 去掉undefined、空字符串等无效值 .map(item => `${item}, `) .join('')
原有模板字符串写法的修复版
如果你不想调整写法,只需要补全属性值的拼接逻辑即可:
const data = `${object.home ? `${object.home}, ` : ''}${ object.car ? `${object.car}, ` : '' }${(object.airplane || object.helicopter) ? `${object.airplane || object.helicopter}, ` : '' }`
内容的提问来源于stack exchange,提问作者Commando
相关产品推荐
相关产品推荐

