2017-01-19 6 views
1

я получаю предупреждение от Грунта, когда я использую подчеркивание библиотеки:undescore _.each и хрюкать

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; 
}; 

ответ

4

Ваша проблема в том, что вы вызываете найти так:

_.find($scope.data.userReports, checkUserFunction(member, userId)); 

Когда вы должны называть это так:

_.find($scope.data.userReports, checkUserFunction); 

Включая фигурные скобки при передаче в checkUserFunction вы не передаете функцию, вы передаете значение значения функции. Кроме того, предикат для поиска принимает только один параметр, поэтому я думаю, что вам нужно, это больше похоже на это:

let userId = 502; 
var member = _.find($scope.data.userReports, checkUserFunction); 

let checkUserFunction = (member) => { 
    return parseInt(member.person.id) === userId; 
}; 
+0

Спасибо за вашу помощь. Он работает правильно. –

+0

Нет проблем. Рад был помочь :) – Glitcher