Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $。将返回值添加到外部变量的每个函数_Javascript_Jquery_Arrays_Each - Fatal编程技术网

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