能否在JavaScript对象属性值中使用管道符(||)设置默认参数?
关于用
||设置bloodGroup默认值的可行性 可以用,但得注意场景限制:
- 正常场景:当
bloodCodeArray经map/filter/pop处理后没找到匹配项时,pop()会返回undefined,此时||会把bloodType赋值给bloodGroup,刚好实现“无匹配时用默认值”的需求。 - 避坑提醒:如果业务中血型的有效值可能包含假值(比如空字符串
""、0这类),||就会出问题——比如匹配到了空字符串,它会被当成“无效值”,错误地替换成bloodType。这种场景下,应该用空值合并运算符??,它只会在左边是null或undefined时才取右边的值,假值不会被误替换。
举个??的替代写法:
const empiUpdateObject = { "parameters": { "bloodGroup": bloodCodeArray .map(bg => bg.code) .filter(bc => bc.toUpperCase() === bloodType.toUpperCase()) .pop() ?? bloodType } }
内容的提问来源于stack exchange,提问作者Inod Umayanga
相关产品推荐
相关产品推荐

