HarmonyOS鸿蒙Next中如何实现按照数组中对象的创建时间属性对数组元素进行排序

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS鸿蒙Next中如何实现按照数组中对象的创建时间属性对数组元素进行排序 【标题】鸿蒙中如何实现按照数组中对象的创建时间属性对数组元素进行排序

【问题描述】鸿蒙中如何实现按照数组中对象的创建时间属性对数组元素进行排序?比如说有个包含订单对象的数组,我现在想按照订单对象的创建时间这个属性来对数组中的订单对象进行降序排序

3 回复

参考这个demo:

class xx { time: number = 0; name: string = ""; }
@Component
struct ArrayTest {
  build() {
    Row() {
      Column() {
        Button("sort").onClick(() => {
          const arr: xx[] = [{ time: 1536282400000, name: 'Alice' }, { time: 1536281200000, name: 'Bob' }, { time: 1536280400000, name: 'Charlie' }, ];
          const sortedArr = arr.sort((a, b) => a.time - b.time); //升序排序
          console.log(JSON.stringify(sortedArr));
          const sortedArr2 = arr.sort((a, b) => b.time - a.time); //降序排序
          console.log(JSON.stringify(sortedArr2)) }) }.width('100%') }.height('100%')
  }
}

更多关于HarmonyOS鸿蒙Next中如何实现按照数组中对象的创建时间属性对数组元素进行排序的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,可以通过使用Array.prototype.sort()方法结合对象的创建时间属性对数组元素进行排序。假设数组中每个对象都有一个createdAt属性表示创建时间,可以使用以下代码实现排序:

const array = [
    { id: 1, createdAt: '2023-10-01T12:00:00Z' },
    { id: 2, createdAt: '2023-09-15T08:30:00Z' },
    { id: 3, createdAt: '2023-10-05T14:45:00Z' }
];

array.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());

在这段代码中,sort()方法接受一个比较函数,该函数将两个对象的createdAt属性转换为时间戳进行比较,从而实现对数组的排序。

在HarmonyOS鸿蒙Next中,可以使用JavaScript的Array.prototype.sort()方法对数组中对象的创建时间属性进行排序。假设数组中的每个对象都有一个createdAt属性表示创建时间,可以按照以下方式排序:

array.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));

此代码将数组按createdAt属性的时间升序排列。若需降序,只需将ab的位置互换即可。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!