如何修改单行if-else(三目运算符)实现同时返回两个变量值
问题分析与修改方案
原有三目运算符代码:
("string" != "string") ? (article = '-' , contact_info = '-') : (article = '' , contact_info = '')
原代码分支中使用了逗号表达式,执行时会先后完成两个变量的赋值,但整个分支表达式最终仅会返回最后一个赋值语句的结果,你目前拿到的数组是外部对两个变量单独合并的结果,无法直接通过该三目运算同时返回两个值。
调整方案
方案1:数组解构赋值(最常用)
直接在三目运算中返回数组,再通过解构一次性给两个变量赋值:
const [article, contact_info] = "string" != "string" ? ['-', '-'] : ['', ''];
该写法执行后article和contact_info会直接被赋予对应的值,不需要额外处理。
方案2:对象解构赋值(适合变量多、易混淆的场景)
如果需要明确变量对应关系,也可以返回对象后解构:
const {article, contact_info} = "string" != "string" ? {article: '-', contact_info: '-'} : {article: '', contact_info: ''};
内容的提问来源于stack exchange,提问作者Wahab
相关产品推荐
相关产品推荐

