HarmonyOS 对象内数组排序问题

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

示例参考如下:

interface TestData {
  rank: number,
}

@Observed
class TestObserver {
  list1: TestData[] =
    [{ rank: 10 }, { rank: 5 }, { rank: 2 }, { rank: 51 }, { rank: 8 }, { rank: 98 }, { rank: 1 }, { rank: 4 },
      { rank: 24 }, { rank: 19 }, { rank: 18 },]

  doSort() {
    this.list1 = this.list1.sort((v1: TestData, v2: TestData) => {
      return v1.rank - v2.rank
    })
    console.log("=================================list1:" + this.list1)
  }
}

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  @State testObserver: TestObserver = new TestObserver();

  build() {
    Row() {
      Column() {
        TestView({ list1: this.testObserver.list1 })
      }
      .width('100%')
    }
    .height('100%')
  }
}

@Component
export struct TestView {
  @State list2: TestData[] =
    [{ rank: 10 }, { rank: 5 }, { rank: 2 }, { rank: 51 }, { rank: 8 }, { rank: 98 }, { rank: 1 }, { rank: 4 },
      { rank: 24 }, { rank: 19 }, { rank: 18 },]
  @Prop list1: TestData[];

  build() {
    Column() {
      Button("添加list1").onClick(() => {
        this.list1.push({ rank: 12 })
      })
      Button("添加list2").onClick(() => {
        this.list2.push({ rank: 12 })
      })
      Button("执行排序1").onClick(() => {
        this.list1.sort((v1: TestData, v2: TestData) => {
          return v1.rank - v2.rank
        })
      })
      Button("执行排序2").onClick(() => {
        this.list2.sort((v1: TestData, v2: TestData) => {
          return v1.rank - v2.rank
        })
      })

      ForEach(this.list1, (value: TestData, index: number) => {
        Text("index:" + index + " value:" + value.rank).width('100%').textAlign(TextAlign.Start)
      })
      Stack().height(20)

      ForEach(this.list2, (value: TestData, index: number) => {
        Text("index:" + index + " value:" + value.rank).width('100%').textAlign(TextAlign.Start)
      })
    }.width('100%').height('100%')
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 数组对象排序
24浏览 • 1回复 待解决
如何监听数组对象属性变化
2378浏览 • 1回复 待解决
HarmonyOS 将json对象按照 ASCII 排序
540浏览 • 1回复 待解决
HarmonyOS 数组对象数据刷新
41浏览 • 1回复 待解决
HarmonyOS @State可以修饰对象数组
37浏览 • 1回复 待解决
HarmonyOS 如何对两个对象进行排序
18浏览 • 1回复 待解决
HarmonyOS @state可以修饰对象数组
45浏览 • 1回复 待解决
mysql 分组去重排序问题
1805浏览 • 1回复 待解决
如何判断一个对象是否在对象数组
2483浏览 • 1回复 待解决
HarmonyOS 关于Grid组件拖拽排序问题
504浏览 • 1回复 待解决
mysql 查询排序问题有了解的吗?
2223浏览 • 1回复 待解决