javascript - 对包含正零和负零的数组进行排序

标签 javascript arrays sorting

我有一个对象数组示例

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/

相关文章:

javascript - 为什么 Gatsby/Facebook 找不到我的 og :image

javascript - 如何在javascript中动态生成div id

相当于 Pygame.org 的 Javascript 游戏开发?

javascript - 如何访问数组中的 URL 并将用户发送给它

python - [ multiprocessing ] 中每个进程的数组需要一个列表,其中所有子列表合并

javascript - 持久性刷新倒计时

Javascript |设置数组的所有值

algorithm - 以 θ(n) 复杂度对数组进行排序

mongodb - 为什么索引的方向在 MongoDB 中很重要?

java - 如何将这种类型的数据处理成Array - JAVA