我正在以这种方式使用lodash地图
const newCollection = _.map(
responseJson.OldCollection,
AddDetailsToSingleItems
);
具有
function AddDetailsToSingleItems (item ) {
...
}
我问你,将参数传递给这个函数的正确语法是什么。
我想要
function AddDetailsToSingleItems (item, myNewParam ) {
...
}
(请注意myNewParam
)。
我不知道如何告诉loadsh map将每个项目传递给我的函数和以在调用AddDetailsToSingleItems
时传递一个参数
答案 0 :(得分:3)
您还没有解释myNewParam
来自哪里,但我假设您在某处有这些数据。
Lodash map(就像普通的JavaScript map一样)接受一个函数作为其第二个参数,在所提供的列表的所有元素上运行。你可以传递一个匿名函数:
_.map(
responseJson.OldCollection,
item => AddDetailsToSingleItems(item, myNewParam)
);
答案 1 :(得分:1)
您可以创建一个知道myNewParam
值的函数,但只接受item
参数,如下所示:
var myNewParam = 'param_value';
var AddDetailsFn = function(m) {
return function(item) {
return AddDetailsToSingleItems(item, m);
};
};
const newCollection = _.map(
responseJson.OldCollection,
AddDetailsFn(myNewParam)
);
这样,_.map
只能看到一个带有单个参数的函数。 AddDetailsFn
返回一个函数,该函数接受一个参数,但已经捕获了myNewParam
的值。你也可以更简洁:
const newCollection = _.map(
responseJson.OldCollection,
function(item) { return AddDetailsToSingleItems(item, myNewParam); }
);