HarmonyOS 手机系统升级后,数组sort排序不对了

HarmonyOS
2024-12-23 14:44:30
915浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

可使用toSortSuccess的排序方式解决排序不生效问题,示例参考:

import { CustomButton } from '../../../../Index';

@Component
export struct ArkTsComm {
  build() {
    Column() {
      CustomButton('点击排序1', () => {
        let sortClass: SortClass = new SortClass();
        sortClass.toSortFail();
        sortClass.toLog();
      })

      CustomButton('点击排序2', () => {
        let sortClass: SortClass = new SortClass();
        sortClass.toSortSuccess();
        sortClass.toLog();
      })
    }
  }
}

class SortClass {
  private items: string[] =
    ['9.15', '9.04', '9.10', '9.16', '9.11', '9.17', '9.23', '9.12', '9.18', '9.24', '9.13', '9.19', '9.25', '9.31',
      '9.20', '9.26', '9.32', '9.21', '9.27', '9.33', '9.22', '9.28', '9.34', '9.40', '8.70', '9.29', '9.35', '9.41',
      '8.71', '9.30', '9.36', '8.66', '8.72', '9.37', '9.43', '8.67', '9.49', '8.73', '8.79', '9.38', '9.44', '8.68',
      '8.74', '9.50', '8.80', '9.39', '9.45', '8.69', '8.75', '9.51', '8.81', '9.46', '9.52', '8.76', '8.82', '8.88',
      '9.47', '9.53', '8.77', '8.83', '8.89', '9.48', '8.78', '9.54', '8.84', '8.90', '9.55', '8.85', '8.91', '8.97',
      '9.56', '8.86', '8.92', '8.98', '8.87', '8.93', '8.99', '9.05', '8.94', '9.00', '9.06', '8.95', '9.01', '9.07',
      '8.96', '9.02', '9.08', '9.14', '9.03', '9.09']

  toLog() {
    console.info('SortClass: ' + JSON.stringify(this.items));
  }

  // 目前该方式排序存在问题,在18版本能验证pass
  toSortFail() {
    this.items.sort((m1: string, m2: string) => {
      return Number.parseFloat(m1) - Number.parseFloat(m2);
    })
  }

  // 目前使用该方式排序可以达到预期
  toSortSuccess() {
    let comp: number = 0;
    this.items.sort((m1: string, m2: string) => {
      comp = Number.parseFloat(m1) - Number.parseFloat(m2);
      return comp > 0 ? 1 : (comp < 0 ? -1 : 0);
    })
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
分享
微博
QQ
微信
回复
2024-12-23 18:31:14


相关问题
HarmonyOS 手机系统升级ui变得卡顿
1037浏览 • 1回复 待解决
系统升级HarmonyOS系统app签名问题
1640浏览 • 1回复 待解决
HarmonyOS Array.sort排序错误
694浏览 • 1回复 待解决
根据list中某项的id如何sort排序
1361浏览 • 1回复 待解决
关于鸿蒙系统升级正式版都有啥机形
10262浏览 • 1回复 待解决
HarmonyOS 数组中对象的排序
1120浏览 • 1回复 待解决
HarmonyOS 对象内数组排序问题
814浏览 • 1回复 待解决
荣耀手机有机会升级鸿蒙系统吗?
8207浏览 • 4回复 待解决
不是华为手机可以升级鸿蒙系统
11985浏览 • 3回复 待解决
升级鸿蒙系统打电话断音
10921浏览 • 1回复 待解决
HarmonyOS Array.sort处理错误
422浏览 • 1回复 待解决
ArkTS如何自定义数组对象的排序规则
1113浏览 • 1回复 待解决
荣耀30手机升级鸿蒙指纹无法使用
10589浏览 • 1回复 待解决