HarmonyOS鸿蒙Next中如何实现按照数组中对象的创建时间属性对数组元素进行排序
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
属性的时间升序排列。若需降序,只需将a
和b
的位置互换即可。