TypeScript 按日期对对象进行排序

2024-01-12

我有一个从另一个问题借来的小代码,用于按日期对数组中的对象进行排序。但是,我不知道如何将其移植到 TypeScript。

this.filteredTxs.sort(function(a,b): any{
        return new Date(b.date) - new Date(a.date);
});

传输错误:

/transactions-view.component.ts(72,16) 中的错误:错误 TS2362: 算术运算的左侧必须是“any”类型, 'number' 或枚举类型。

/transactions-view.component.ts(72,35): 错误 TS2363: 右手 算术运算的一侧必须是“any”、“number”或 an 类型 枚举类型。


而不是依靠强制Date对象到其基础毫秒自纪元数值,您希望直接获取毫秒自纪元值并在-表达。

你还没告诉我们什么a.date and b.date是,但我们可以推断它们要么是字符串,要么是数字,或者(至少)Date实例。

假设a.date and b.date are strings

If a.date and b.date是字符串,你可以使用Date.parse https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse使用相同的规则解析字符串new Date并直接获取自 The-Epoch 以来的毫秒值:

return Date.parse(b.date) - Date.parse(a.date);

请注意,该问题和您问题中的原始代码都假设a.date and b.date确实处于适当的格式 https://tc39.github.io/ecma262/#sec-date-time-string-format被解析为Date object.

假设a.date and b.date是数字

If a.date and b.date are alreadymilliseconds-since-The-Epoch 值,直接使用它们:

return b.date - a.date;

假设a.date and b.date are Date实例

If a.date and b.date are Date实例,使用getTime获取自 The-Epoch 以来的基础毫秒值:

return b.date.getTime() - a.date.getTime();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeScript 按日期对对象进行排序 的相关文章

随机推荐