HarmonyOS 鸿蒙Next的Array的sort排序方法,在0.0.31版本不生效,0.0.26及之前版本都没问题
HarmonyOS 鸿蒙Next的Array的sort排序方法,在0.0.31版本不生效,0.0.26及之前版本都没问题
const Keyboard_ABC: Array<Array<KeyboardItemData>> = [
[
new KeyboardItemData(49, ‘1’),
new KeyboardItemData(50, ‘2’),
new KeyboardItemData(51, ‘3’),
new KeyboardItemData(52, ‘4’),
new KeyboardItemData(53, ‘5’),
new KeyboardItemData(54, ‘6’),
new KeyboardItemData(55, ‘7’),
new KeyboardItemData(56, ‘8’),
new KeyboardItemData(57, ‘9’),
new KeyboardItemData(48, ‘0’),
].sort((a, b) => {
return 0.5 - Math.random();
}),
更多关于HarmonyOS 鸿蒙Next的Array的sort排序方法,在0.0.31版本不生效,0.0.26及之前版本都没问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
@Entry
@Component
struct ArraySortPage {
@State message: string = 'Hello World';
build() {
Column() {
Text(this.message)
.id('ArraySortPageHelloWorld')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
middle: { anchor: '__container__', align: HorizontalAlign.Center }
})
ArkTsComm()
}
.justifyContent(FlexAlign.Center)
.height('100%')
.width('100%')
}
}
@Component
export struct ArkTsComm {
build() {
Column() {
Button() {
Text('点击排序1')
}
.type(ButtonType.Capsule)
.height(40)
.width(200)
.margin({top: 20})
.onClick(() => {
let sortClass: SortClass = new SortClass();
sortClass.toSortFail();
sortClass.toLog();
})
Button() {
Text('点击排序2')
}
.type(ButtonType.Capsule)
.height(40)
.width(200)
.margin({top: 20})
.onClick(() => {
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);
})
}
}
更多关于HarmonyOS 鸿蒙Next的Array的sort排序方法,在0.0.31版本不生效,0.0.26及之前版本都没问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next的0.0.31版本中,若Array
的sort
排序方法不生效,而0.0.26及之前版本均表现正常,可能的原因包括但不限于API变动、底层实现调整或已知的bug。
针对此问题,可首先检查以下几点:
-
确认排序方法调用:确保调用
sort
方法时传入的比较函数(如适用)逻辑正确,且符合当前版本的API要求。 -
版本差异对比:查阅HarmonyOS鸿蒙Next从0.0.26到0.0.31版本的更新日志,寻找关于
Array
或排序功能的具体变更说明。 -
测试环境一致性:确保测试环境(如设备型号、系统配置)在不同版本间一致,以排除环境因素干扰。
-
查阅官方文档:访问HarmonyOS官方文档,查看
Array
类的sort
方法是否有更新说明或替代方案。
若以上步骤均无法解决问题,可能需考虑是否为系统级别的bug。此时,建议通过HarmonyOS官方渠道反馈问题,或直接联系技术支持。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html