我有一个对象数组示例
var objects = [
{ first_nom: 'dave', value: '5'},
{ first_nom: 'roger', value: '-0'},
{ first_nom: 'pete', value: '+0' },
{ first_nom: 'pete', value: '-5' },
];
按值排序会理想地反转两个零。
我已经尝试了正常的 javascript/jquery 和下划线排序,但它们忽略了前导 -
或 +
并且可能是正确的。
这是我目前拥有的(这很好但忽略了 + 和 -):
var chartData = _.sortBy(objects, 'value').reverse();
还有什么可以推荐的吗?
非常感谢
新
最佳答案
您可以对它们进行特殊处理,当两个值都为 0
时按字符串排序:
var objects = [
{ first_nom: 'dave', value: '5'},
{ first_nom: 'roger', value: '-0'},
{ first_nom: 'pete', value: '+0' },
{ first_nom: 'pete', value: '-5' },
];
var sorted = objects.sort(
function(a,b) {
if ((a.value == 0) && (b.value == 0))
{
return b.value.localeCompare(a.value);
}
else
return b.value - a.value;
}
);
console.log(JSON.stringify(sorted));
结果:
[
{"first_nom":"dave","value":"5"},
{"first_nom":"pete","value":"+0"},
{"first_nom":"roger","value":"-0"},
{"first_nom":"pete","value":"-5"}
]
关于javascript - 对包含正零和负零的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26674984/