Javascript $。将返回值添加到外部变量的每个函数
我有一个字符串数组,我用这个函数处理它:Javascript $。将返回值添加到外部变量的每个函数,javascript,jquery,arrays,each,Javascript,Jquery,Arrays,Each,我有一个字符串数组,我用这个函数处理它: $.each(lines, processLine); processLine函数返回另一个字符串,但我需要将这些字符串组合成一个结果。主要的问题是我不希望processLine函数引用外部变量(名为css),它只需要返回结果,并在外部进行组合。以下是我所做的: var css = ''; css += $.each(lines, processLine); 但是css变量最终是原始数组元素的组合(未处理),不知道为什么…您可以实现如下功能: fun
$.each(lines, processLine);
processLine函数返回另一个字符串,但我需要将这些字符串组合成一个结果。主要的问题是我不希望processLine函数引用外部变量(名为css),它只需要返回结果,并在外部进行组合。以下是我所做的:
var css = '';
css += $.each(lines, processLine);
但是css变量最终是原始数组元素的组合(未处理),不知道为什么…您可以实现如下功能:
function processLines(lines) {
var resultCss = '';
$.each (lines, function() { resultCss += processLine(this) });
return resultCss;
}
var css = processLines(yourLines);
迭代,项目。由于要从行中投影值,因此应使用$.map()
:
传递给$.map()
的函数通过两个参数为数组中的每个项调用:项本身及其索引。由于processLine()
将一行作为其第一个也是唯一的参数,因此我们可以直接传递该函数,而不是使用匿名函数作为中间参数
从那里,我们将从投影数组中构建一个字符串。将空字符串作为分隔符传递会导致简单的连接
编辑:如果processLine()
没有接受一个行
参数,那么我上面的推理是不正确的,您必须编写如下内容:
var css = $.map(lines, function(line, index) {
return processLine(index, line);
}).join("");
$.map可能最终是一个更好的选择最简单的方法是删除
css+=
并将其放在processLine
的末尾。好吧,。每个都不返回任何内容。我们可以看看什么是processLine
?$.map(line,processLine);var result=lines.join(',');在回调(processLine)内部,您必须进行追加..很抱歉通信错误,processLine使用索引和行变量,我认为您的答案是正确的,但您能给我一个旧的示例吗?
var css = $.map(lines, function(line, index) {
return processLine(index, line);
}).join("");