Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript-string&;数值比较_Javascript_Sql_Hana - Fatal编程技术网

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})返回r[groupByCondition.column]。toString()==groupByCondition.value.toString()
(它们可能不是整数)您的意思是,如果
r[groupByCondition.column]
返回一个数值,则筛选器将失败?还是仅
return+r[groupByCondition.column]==+groupByCondition.value只要它们是数字(并且应该是数字),他就使用“==”而不是“==”,因此“3”==3解析为true。有鉴于此,你的答案如何才能解决这个问题?