在循环中连接字符串节点
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-dash 和 underscore ...
从您的示例来看,您似乎希望将所有结果附加到该值,并以 & 符号分隔。如果那是您想要的,那么这将满足您的需要...
// 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
,所以您仍然可以完整地保留原始结果数组,以备日后需要。
我有以下代码,如果 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-dash 和 underscore ...
从您的示例来看,您似乎希望将所有结果附加到该值,并以 & 符号分隔。如果那是您想要的,那么这将满足您的需要...
// 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
,所以您仍然可以完整地保留原始结果数组,以备日后需要。