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

标签 javascript jquery arrays each

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

$.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/

相关文章:

jquery - 无法更改我的元素的 ID

jquery - 在 bootstrap 上固定一列

arrays - 了解如何在 lua 中访问表数组中的值

javascript - 如何在 HTA 中获取文件的关联图标 (HTML/Javascript/VBScript)

javascript - 如何将 new Map() 字符串化?

javascript - 如何使用 jQuery 检测我的 iPad 设备

java - 为什么 Arrays.fill() 不再在 HashMap.clear() 中使用?

javascript - 为什么当条形值为零时该函数不起作用

jquery - 如何在jquery中创建一个全局函数,并从另一个加载的页面调用它

java - 无法在 Java 二维数组中赋值 - ArrayIndexOutOfBoundsException