我有这个对象数组
var grps = [{
group_no: 0,
id: "733",
xpos: 226.72,
ypos: 100
}, {
group_no: 0,
id: "735",
xpos: -1.19,
ypos: 200
}];
我试图根据值xpos
对数组进行排序var small_x = grps.sort(function(a, b) {
return a.xpos - b.xpos;
});
当我做的时候
console.log(small_x[0].xpos); //sort asc
我希望该值为-1.19
,但我得226.72
答案 0 :(得分:2)
见下文(也适用于字符串值)。 ECMA脚本没有指定使用了哪个算法。但是,简单地说,比较a的posx是<,>或(其他)== posx of b。这将返回resp。 -1,1或0,可以简单排序。
另请参阅Mozilla Developer Network的文档,其中包含说明,示例,ECMA脚本说明以及下面的示例(概念性):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
function comparePos(a, b)
{
if (a.xpos < b.xpos)
return -1;
if (a.xpos > b.xpos)
return 1;
return 0;
}
grps.sort(comparePos);
请参阅:Sort array of objects by string property value in JavaScript