我是 js 新手,并试图按两个字段对对象数组进行排序 - 从第一个属性开始,然后是第二个属性。这两个属性都是数字。
数据是:
var homes = [{
"h_id": "3",
"minimumorder": "12",
"price": "17"
}, {
"h_id": "4",
"minimumorder": "1",
"price": "20"
}, {
"h_id": "5",
"minimumorder": "1",
"price": "18.10"
}
数组中有更多对象,这是一个简化的示例。下面的代码几乎可以让我到达那里,但是对于 minimumorder 属性,它将 12 放在 1 之后而不是 6 之后:
cmp = function(a, b) {
parseFloat(a);
parseFloat(b);
if (a > b) return +1;
if (a < b) return -1;
return 0;
}
homes.sort(function(a, b) {
return cmp(a.minimumorder,b.minimumorder) || cmp(a.price,b.price)
})
jsFiddle在这里。
任何帮助将不胜感激,因为我一直在谷歌搜索和修补几个小时试图弄清楚这一点。