You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue中实现不区分正负、按绝对值从高到低排序的方法

按绝对值从高到低排序数组

你当前的排序逻辑是直接比较total的数值大小,所以会出现正数在前、绝对值大的负数靠后的情况。要实现按绝对值从高到低排序,只需要在比较时对total取绝对值即可。

修改后的排序函数如下:

sortByAmountHighToLow(trades) {
  return trades.sort((a, b) => {
    return Math.abs(b.total) - Math.abs(a.total);
  });
},

补充说明:

  • Math.abs()用于获取数值的绝对值,通过比较b.total和a.total的绝对值差值,就能实现绝对值从高到低的排序。
  • 注意:Array.sort()是原地修改数组的方法,如果不想改变原trades数组的顺序,建议先浅拷贝一份再排序:
sortByAmountHighToLow(trades) {
  // 用扩展运算符浅拷贝数组,避免修改原数据
  return [...trades].sort((a, b) => {
    return Math.abs(b.total) - Math.abs(a.total);
  });
},

这样处理后,就能得到你期望的排序结果:[-531, 245, -195, 54, -12]。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:15:43