javascript - AngularJS orderBy 使用字典顺序,即使是数字

标签 javascript angularjs lexicographic

我有一个传递到我的 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/

相关文章:

javascript - GAE/Angular 应用程序中 window.init() 的无限循环

javascript - 这个排序例程有什么问题?

c - 在c中按字典顺序对字符串进行排序

java - 查找一组数字的特定大小的所有可能组合

javascript - JQuery DataTables 如何在使用分页时从表中获取选定的行?

javascript 在数组中查找对象名称

javascript - 如何在 formData 中追加数组,其中包含 2 个带有键的值

javascript - 如何持续监控某些网站并定期执行操作

Javascript、CanvasRenderingContext2D.drawImage 无法识别图像数据

angularjs - ng-checked 和 ng-change 单选按钮不能一起工作 - angularjs