下划线 _.each 和 grunt
undescore _.each and grunt
我在使用下划线库时收到来自 Grunt 的警告:
let userId = 502;
let member = _.find($scope.data.userReports, function (member) {
return member.person.id === userId;
});
不要在循环中创建函数。
当我尝试纠正这种情况时,我没有从下划线获取成员(未定义,但成员也没有传递到 checkUserFunction)。
let userId = 502;
var member = _.find($scope.data.userReports, checkUserFunction(member, userId));
let checkUserFunction = (member, dataKey) => {
if(parseInt(member.person.id) === parseInt(dataKey)){
return true;
}
return false;
};
你的问题是你是这样调用 find 的:
_.find($scope.data.userReports, checkUserFunction(member, userId));
什么时候你应该这样称呼它:
_.find($scope.data.userReports, checkUserFunction);
通过在传递 checkUserFunction 时包含大括号,您传递的不是函数,而是函数的 return 值。
另外,find 的谓词只接受一个参数,所以我认为你需要的更像这样:
let userId = 502;
var member = _.find($scope.data.userReports, checkUserFunction);
let checkUserFunction = (member) => {
return parseInt(member.person.id) === userId;
};
我在使用下划线库时收到来自 Grunt 的警告:
let userId = 502;
let member = _.find($scope.data.userReports, function (member) {
return member.person.id === userId;
});
不要在循环中创建函数。
当我尝试纠正这种情况时,我没有从下划线获取成员(未定义,但成员也没有传递到 checkUserFunction)。
let userId = 502;
var member = _.find($scope.data.userReports, checkUserFunction(member, userId));
let checkUserFunction = (member, dataKey) => {
if(parseInt(member.person.id) === parseInt(dataKey)){
return true;
}
return false;
};
你的问题是你是这样调用 find 的:
_.find($scope.data.userReports, checkUserFunction(member, userId));
什么时候你应该这样称呼它:
_.find($scope.data.userReports, checkUserFunction);
通过在传递 checkUserFunction 时包含大括号,您传递的不是函数,而是函数的 return 值。 另外,find 的谓词只接受一个参数,所以我认为你需要的更像这样:
let userId = 502;
var member = _.find($scope.data.userReports, checkUserFunction);
let checkUserFunction = (member) => {
return parseInt(member.person.id) === userId;
};