不知道的_.each和grunt

时间:2017-01-19 11:08:42

标签: javascript angularjs gruntjs underscore.js

当我使用下划线库时,我收到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;
};

1 个答案:

答案 0 :(得分:4)

你的问题在于你正在打电话给这样的人:

 package prac;

    public class RemoveDup {

        public static void main(String[] args) {

    int[] a={2,5,4,9,3,2,5,9,4};
    int n=a.length;
    for(int i=0;i<=n;i++){
        //System.out.print("In i"+i);
        for(int j=i+1;j<n;j++){
            //System.out.println("In j"+j);
            if(a[i]==a[j]){
                System.out.println(a[i]);
            }
        }

    }
        }

    }

当你应该这样称呼它时:

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

在传入checkUserFunction时包含大括号,你没有传递函数,你传递函数的 return 值。 此外,find的谓词只接受一个参数,所以我认为你需要的更像是这样:

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