Javascript 如何在js中通过过滤器运行数组?

Javascript 如何在js中通过过滤器运行数组?,javascript,Javascript,我有以下代码 var eqn = c1 + q1 + q2 + ‘ + ‘ + c2 + w1 + w2 + ‘=‘ + c3 + e1 + e2; 此代码组合字符串而不是添加数字。 我认为最好使用数组修改这个字符串,我可以这样做。我的问题是,如果变量等于1,我想删除它。例如,如果c1==1那么变量的定义如下:var eqn=q1+q2++'+c2+w1+w2++'='+c3+e1+e2我希望这发生在任何一个或多个等于1的变量上。是否有一个函数或一段代码可用于执行此操作?您可以使用 例如:

我有以下代码

var eqn = c1 + q1 + q2 +  ‘ + ‘ + c2 + w1 + w2 + ‘=‘ + c3 + e1 + e2;
此代码组合字符串而不是添加数字。

我认为最好使用数组修改这个字符串,我可以这样做。我的问题是,如果变量等于1,我想删除它。例如,如果
c1==1
那么变量的定义如下:
var eqn=q1+q2++'+c2+w1+w2++'='+c3+e1+e2我希望这发生在任何一个或多个等于1的变量上。是否有一个函数或一段代码可用于执行此操作?

您可以使用

例如:

以下值

1 + 2 + 3 + ' + ' + 4 + 5 + 6 + ' = ' + 7 + 8 + 9;
会回来的

'23 + 456 = 789'

在假设变量是数值的情况下,你可以通过一个函数来运行它们,比如下面的函数,如果它包含一个变量,它将返回零,算术将得到解决:

function excludeIfOne(val) {
    return val === 1 ? 0 : val
}

然而,这可能导致一长串混乱的代码。另一个答案建议使用
reduce
,我正打算建议自己使用如果你不熟悉,你可以使用and。(像克鲁乔的方式)


@GeorgeJempty抱歉我的错误,请看更新的问题这将产生语法错误。@webdeb你是什么意思?缺少+运算符,顺便说一句。你在做什么?连接字符串还是添加数字?如果这是一个组合,它将以一个意外的结果结束:
2+2+“+”+3+3
检查您的控制台。使用括号使其清晰易读:
(2+2)+“+”+”+(3+3)
非常漂亮!但也许你要确保你强迫它成为一个字符串,或者c1和q1在数学上相加。。。?acc:''+acc+cur@klugjo这是否意味着当我运行console.log(字符串)时;能给我一根流畅的琴弦吗?太好了!我会选择
filter
ed,然后选择
join
ed。不过我喜欢你的方法。如果它的前缀不是“undefined”,你可能应该定义初始acc.@klugjo q1、w1和e1是字母/单词,这种方法还能用吗?打字:使用
filter
而不是
map
谢谢你指出我的错误。
function excludeIfOne(val) {
    return val === 1 ? 0 : val
}
var string = [c1, q1, q2, ' + ', c2, w1, w2, '+', c3, e1, e2];
string.filter(word=> word!=1).join('');