我有以下代码。
var eqn = c1 + q1 + q2 + ‘ + ‘ + c2 + w1 + w2 + ‘=‘ + c3 + e1 + e2;
此代码组合字符串而不添加数字。
我认为最好通过使用我可以执行的数组来修改此字符串。我的问题是我想删除变量,如果它等于1.例如,如果c1 == 1
那么变量应该像这样定义:var eqn = q1 + q2 + ‘ + ‘ + c2 + w1 + w2 + ‘=‘ + c3 + e1 + e2;
我希望这发生在任何一个或多个相等的变量上一个。是否有可用于执行此操作的函数或代码?
答案 0 :(得分:3)
您可以使用Array.reduce
var string = [c1, q1, q2, ' + ', c2, w1, w2, ' = ', c3, e1, e2]
.reduce((acc, cur) => cur == 1 ? acc : acc + '' + cur, '');
示例:
以下值
1 + 2 + 3 + ' + ' + 4 + 5 + 6 + ' = ' + 7 + 8 + 9;
将返回
'23 + 456 = 789'
答案 1 :(得分:0)
好的,假设变量是数字的,你可以通过如下的函数运行它们,如果它包含一个函数,它将返回零,算法将运行:
function excludeIfOne(val) {
return val === 1 ? 0 : val
}
然而,这可能导致一个长杂乱的代码行。请参阅另一个建议使用reduce
的答案,我建议自己
答案 2 :(得分:0)