我有一个字符串数组,我用这个函数处理它:
$.each(lines, processLine);
processLine 函数返回另一个字符串,但我需要将这些字符串组合成一个结果。主要问题是我不希望 processLine 函数引用外部变量(名为 css),它只需要返回结果,并在外部进行组合。所以这就是我所做的:
var css = '';
css += $.each(lines, processLine);
但是css变量最后是原始Arrays元素的组合(未处理),不知道为什么...
最佳答案
$.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("");
关于javascript - $.each 函数添加返回到外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23366716/