$ .each函数添加返回外部变量

时间:2014-04-29 13:53:58

标签: javascript jquery arrays each

我有一个字符串数组,我使用此函数处理:

$.each(lines, processLine);

processLine函数返回另一个字符串,但我需要将字符串组合成一个结果。主要问题是我不希望processLine函数引用外部变量(名为css),它只需要返回结果,并在外部进行组合。所以这就是我所做的:

var css = '';
css += $.each(lines, processLine);

但是css变量以原始Arrays元素的组合结束(未处理),不知道为什么......

2 个答案:

答案 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);