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

Javascript 如何在高阶函数中将参数传递给命名回调,javascript,jquery,lodash,Javascript,Jquery,Lodash,我想知道如何将参数传递给命名回调函数 比如我有 var result = this.data; var groupFilter = $("#groupSelect"); var functionFilter = $("#functionSelect"); var skillFilter = $("#skillSelect"); var uniqSkils = _(result).map('skill').uniq().map(populateDropdown(s

我想知道如何将参数传递给命名回调函数

比如我有

   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
        }))
    }
var result=this.data;
var groupFilter=$(“#groupSelect”);
var functionFilter=$(“#functionSelect”);
var skillFilter=$(“#skillSelect”);
var uniqskills=((result).map('skill').uniq().map(populateDropdown(skillFilter));
var uniqFunctions=uz(result).map('function').uniq().map(populateDropdown(functionFilter));
var uniqgroups=((result).map('group').uniq().map(populateDropdown(groupFilter));
函数填充下拉列表(元素){
元素。追加($(“”{
价值:项目,,
正文:项目
}))
}
基本上,结果包含三个元素的下拉值。我创建了3个数组,然后出于明显的原因调用了uniq,然后我想遍历每个数组,每个项目,并将其添加到正确的元素中


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

您可以让您的PopulatedDropdown返回绑定到特定元素的闭包:

function populateDropdown(element) {
    return function(item) {
        element.append($('<option>', {
            value: item,
            text: item
        }));
    }
}
函数填充下拉列表(元素){
返回函数(项目){
元素。追加($(“”{
价值:项目,,
正文:项目
}));
}
}

您可以让PopulatedDropdown返回绑定到特定元素的闭包:

function populateDropdown(element) {
    return function(item) {
        element.append($('<option>', {
            value: item,
            text: item
        }));
    }
}
函数填充下拉列表(元素){
返回函数(项目){
元素。追加($(“”{
价值:项目,,
正文:项目
}));
}
}

仍然无法使用curried lodash的
map
功能。请参阅Rory McCrossan的答案,这是一个很好的答案(尽管当代码的其他部分遵循函数方法时,使用
这个
是一个值得怀疑的做法)。为什么它不起作用?看起来它工作得很好:(虽然我可能遗漏了一些东西)@rishatmuhametshin仍然无法使用curried lodash的
map
功能。请参阅Rory McCrossan的答案,这是一个很好的答案(尽管当代码的其他部分遵循函数方法时,使用
这个
是一个值得怀疑的做法)。为什么它不起作用?看起来效果不错:(虽然我可能错过了什么)@RishatMuhametshin