我有一个字符串数组,我使用此函数处理:
$.each(lines, processLine);
processLine函数返回另一个字符串,但我需要将字符串组合成一个结果。主要问题是我不希望processLine函数引用外部变量(名为css),它只需要返回结果,并在外部进行组合。所以这就是我所做的:
var css = '';
css += $.each(lines, processLine);
但是css变量以原始Arrays元素的组合结束(未处理),不知道为什么......
答案 0 :(得分:3)
$.each() 迭代,$.map() 项目。由于您希望从行中投射值,因此您应该使用$.map()
:
var css = $.map(lines, processLine).join("");
使用两个参数为数组中的每个项调用传递给$.map()
的函数:项本身及其索引。由于processLine()
将一行作为其第一个也是唯一一个参数,我们可以直接传递该函数,而不是使用匿名函数作为中间函数。
从那里,join()将从我们的投影数组中构建一个字符串。将空字符串作为分隔符传递会导致简单的连接。
编辑:如果processLine()
没有采用单line
个参数,那么我上面的推理是不正确的,您必须写下这样的内容:
var css = $.map(lines, function(line, index) {
return processLine(index, line);
}).join("");
答案 1 :(得分:0)
你可以实现这样的功能:
function processLines(lines) {
var resultCss = '';
$.each (lines, function() { resultCss += processLine(this) });
return resultCss;
}
var css = processLines(yourLines);