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

$.each function to add return to an external variable

本文关键字:外部 变量 添加 返回值 each 函数      更新时间:2023-09-26

我有一个字符串数组,我用这个函数处理它:

$.each(lines, processLine);

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

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

但是css变量最终是原始数组元素的组合(未处理),不知道为什么。。。

$.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("");

你可以实现这样的函数:

function processLines(lines) {
  var resultCss = '';
  $.each (lines, function() { resultCss += processLine(this) });
  return resultCss;
}
var css = processLines(yourLines);