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 值时,它最终还是一个字符串。如果你放下 [ ] 它应该可以工作。