我有一个传递到我的 orderBy 中的值函数:
function getValue(item){
return [parseInt(item.approx_value_usd) || -1];
}
这肯定总是返回一个 number 数组,但出于某种原因,在前端 AngularJS 总是按属性 'approx_value_usd' 的字典顺序排序我的项目,例如
88 > 82 > 8 > 53(错误!)
我觉得我遗漏了一些东西,但似乎无法解决这个问题。
最佳答案
使用简单的比较检查“order-by”函数的返回值。您的代码返回一个数组,而不仅仅是一个数字。当数组出现在 JavaScript 中时 >
或 <
比较,它会被转换成一个字符串。这是通过获取数组中每个元素的 string 值并将它们连接起来完成的。
因此,即使您将数字放入数组中,当 Angular 实际使用返回值时,它最终还是一个字符串。如果你放下 [ ]
它应该工作。
关于javascript - AngularJS orderBy 使用字典顺序,即使是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29462006/