AngularJS orderBy即使使用数字也可以使用词典排序

时间:2015-04-05 20:44:13

标签: javascript angularjs lexicographic

我有一个值函数,它传递给我的orderBy:

function getValue(item){
    return [parseInt(item.approx_value_usd) || -1];
}

这肯定总是返回数字数组,但由于某些原因,前端AngularJS总是按照属性的词典顺序对我的项目进行排序' approx_value_usd' e.g。

88> 82> 8> 53(错!)

我觉得我错过了一些东西,但似乎无法解决这个问题。

1 个答案:

答案 0 :(得分:2)

&#34; order-by&#34;的返回值使用简单的比较检查功能。您的代码返回一个数组,而不仅仅是一个数字。当数组出现在JavaScript ><比较中时,它会被转换为字符串。这是通过获取数组中每个元素的 string 值并加入它们来完成的。

因此,即使您在数组中放入数字,当Angular实际使用返回的值时,它最终仍然是一个字符串。如果你删除[ ]它应该有用。