AngularJS orderBy 使用字典顺序,即使是数字
AngularJS orderBy using lexicographical ordering even with numbers
我有一个传递到我的 orderBy 中的价值函数:
function getValue(item){
return [parseInt(item.approx_value_usd) || -1];
}
这绝对总是 returns 一个 number 数组,但出于某种原因在前端 AngularJS 总是按字典顺序排列我的项目属性 'approx_value_usd' 例如
88 > 82 > 8 > 53(错误!)
我觉得我遗漏了一些东西,但似乎无法解决这个问题。
"order-by" 函数的 return 值使用简单比较进行检查。您的代码是 returning 一个数组,而不仅仅是一个数字。当数组出现在 JavaScript >
或 <
比较中时,它将被转换为字符串。这是通过获取数组中每个元素的 string 值并加入它们来完成的。
因此,即使您将数字放入数组中,当 Angular 实际使用 returned 值时,它最终还是一个字符串。如果你放下 [ ]
它应该可以工作。
我有一个传递到我的 orderBy 中的价值函数:
function getValue(item){
return [parseInt(item.approx_value_usd) || -1];
}
这绝对总是 returns 一个 number 数组,但出于某种原因在前端 AngularJS 总是按字典顺序排列我的项目属性 'approx_value_usd' 例如
88 > 82 > 8 > 53(错误!)
我觉得我遗漏了一些东西,但似乎无法解决这个问题。
"order-by" 函数的 return 值使用简单比较进行检查。您的代码是 returning 一个数组,而不仅仅是一个数字。当数组出现在 JavaScript >
或 <
比较中时,它将被转换为字符串。这是通过获取数组中每个元素的 string 值并加入它们来完成的。
因此,即使您将数字放入数组中,当 Angular 实际使用 returned 值时,它最终还是一个字符串。如果你放下 [ ]
它应该可以工作。