在循环中连接字符串节点

Concatenate string node in loop

我有以下代码,如果 result[1] 的长度为 1,则它可以工作,如下所示:

var url = redir[0] + 'value=' + encoURL + '& + result[1];

现在我遇到这样的情况,当结果有更多条目 3 或 5 时,我需要将它连接到字符串,有一个很好的方法可以代替这种丑陋的方法

var url = redir[0] + 'value=' + encoURL + '& + result[1] + '& + result[2] + '& + result[3]  

等等

我使用了 lo-dashunderscore ...

从您的示例来看,您似乎希望将所有结果附加到该值,并以 & 符号分隔。如果那是您想要的,那么这将满足您的需要...

// get a copy of result, with the first element removed...
var newResult = result.slice(1);
var url = redir[0] + 'value=' + encoURL + (newResult.length ? "&" : "") + newResult.join("&");

join 将连接 newResult 的所有值,以 & 符号分隔。

如果 newResult 中有任何值,

(newResult.length ? "&" : "") 基本上会添加第一个和号,因此它处理了 newResult 为空的可能性。您也可以将连接放在该条件运算符中,但我这样做是因为它更具可读性,并且对最终结果没有影响。

我创建了 newResult,所以您仍然可以完整地保留原始结果数组,以备日后需要。