javascript-string&;数值比较
下面是我用来获取特定javascript-string&;数值比较,javascript,sql,hana,Javascript,Sql,Hana,下面是我用来获取特定groupby条件下的聚合总计数的代码。首先,我使用筛选条件获取所有记录,然后基于groupby列,我获取该groupby列的每个不同值的计数 allRecords.filter( function(r){ return r[groupByCondition.column] == groupByCondition.value; } ).length; 如果groupbyColumn有一个数值,那么这种方法非常有效。当group by列包含个字符时,它不会获取
groupby
条件下的聚合总计数的代码。首先,我使用筛选条件获取所有记录,然后基于groupby
列,我获取该groupby列的每个不同值的计数
allRecords.filter(
function(r){
return r[groupByCondition.column] == groupByCondition.value;
}
).length;
如果groupbyColumn
有一个数值,那么这种方法非常有效。当group by列包含个字符时,它不会获取聚合总计数
在此方面的任何帮助都将不胜感激。使用
parseInt
/parseFloat
将字符串转换为数字
return parseInt(r[groupByCondition.column]) == parseInt(groupByCondition.value);
问题是
groupByCondition.column
和groupByCondition.value
需要一个对象,例如groupByCondition={“column”:“col1”,“value”:“abc”}
,但您的方法不同groupByCondition={“col1”:“abc”}
您可以更改groupByCondition
对象以适应以后访问它的方式:
allRecords=[{“col1”:“abc”,“col2”:“xyz”},{“col1”:“cde”,“col2”:“zxy”},{“col1”:“1”,“col2”:“bit”},{“col1”:1,“col2”:“byte”});
功能过滤器记录(条件){
结果=allRecords.filter(
功能(r){
返回r[condition.column]==condition.value;
}
);
log(“+JSON.stringify(condition)+”is”过滤的结果);
控制台日志(结果);
返回结果;
}
结果=filterRecords({“列”:“col1”,“值”:“abc”});
结果=filterRecords({“列”:“col1”,“值”:“cde”});
结果=filterRecords({“列”:“col1”,“值”:“1”});
结果=filterRecords({“列”:“col1”,“值”:1})你能提供两个例子吗,一个有数值,一个没有。我不太明白你的意思。谢谢。内部筛选器函数“3”和3不同。您需要解析int(val,10)或返回r[groupByCondition.column]。toString()==groupByCondition.value.toString()
(它们可能不是整数)您的意思是,如果r[groupByCondition.column]
返回一个数值,则筛选器将失败?还是仅return+r[groupByCondition.column]==+groupByCondition.value代码>只要它们是数字(并且应该是数字),他就使用“==”而不是“==”,因此“3”==3解析为true。有鉴于此,你的答案如何才能解决这个问题?