javascript - 如何在高阶函数中将参数传递给命名回调

标签 javascript jquery lodash

我试图弄清楚如何将参数传递给命名回调函数?

例如我有

   var result = this.data;

   var groupFilter = $("#groupSelect");
   var functionFilter = $("#functionSelect");
   var skillFilter = $("#skillSelect");

   var uniqSkils = _(result).map('skill').uniq().map(populateDropdown(skillFilter));
   var uniqFunctions = _(result).map('function').uniq().map(populateDropdown(functionFilter));
   var uniqgroups = _(result).map('group').uniq().map(populateDropdown(groupFilter));

    function populateDropdown(element) {
        element.append($('<option>', {
            value: item,
            text: item
        }))
    }

结果本质上包含三个元素的下拉值。我创建了 3 个数组,然后出于明显的原因调用了 uniq,然后我想遍历每个数组、每个项目并将其添加到正确的元素中。

但是我不知道如何在使用命名回调时传入元素

最佳答案

您可以让 populateDropdown 返回绑定(bind)到特定元素的闭包:

function populateDropdown(element) {
    return function(item) {
        element.append($('<option>', {
            value: item,
            text: item
        }));
    }
}

关于javascript - 如何在高阶函数中将参数传递给命名回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39417562/

相关文章:

javascript - 如何通过Lodash将对象转换为排序数组

javascript - 通过值为数组的键组合两个对象

javascript - 如何在 vim 中添加 react jsx 作为 javascript 文件类型并启用 eslinting、自动完成?

jquery - *在*页面加载之前测试用户连接速度?

javascript - Jquery Enable button on click div 并显示相应的元素

javascript - 如何从网页大小控制网页元素大小

javascript - 在 Javascript/Lodash 中比较嵌套对象字段与数组列表

javascript - 获取以 mb 或 kb 为单位的文件大小

javascript - 插入DOM时Vue编译

javascript - 为什么我可以在 JS 中设置样式而不违反内容安全策略 style-src 'self' ?