我有一个用于汇总数据(计数,求和,平均等)的通用函数我想为它添加标准,就像这样。
function summarize(data, criteria, criteriaCol, criteriaValue)
for(i=0;i<data.length){
if(data[i][criteriaCol] criteria criteriaValue){
//do stuff
}
}
}
在这个例子中,我希望标准是一个运算符
答案 0 :(得分:1)
您可以让summarize
函数接受函数作为criteria
参数:
function summarize(data, criteriaCol, criteriaValue, criteria)
{
for(i=0;i<data.length;i++){
if(criteria(data[i][criteriaCol], criteriaValue)){
//Do something.
}
}
}
假设您希望对列中小于criteriaValue
五的元素执行操作。然后你会这样做:
function smallerThan(data, value) {
return data < value;
}
summarize(data, 4, 5, smallerThan);
或者,您可以声明内联函数:
summarize(data, 4, 5, function(data, value) {
return data < value;
});
您可以为每个操作符创建一个函数,甚至可以创建更复杂的函数,而不仅仅是简单的比较。