【发布时间】:2018-10-31 07:45:44
【问题描述】:
我目前正在从 API 获取数据,但在尝试按日期对客户端视图中的数据进行排序时遇到问题。
这是我收到的数据(大约 20 多个,但我举了一个示例,其中填写了一些示例数据)
address: "1212 Test Ave"
address2: ""
checkNumber : ""
city: "La Grange"
country: ""
email: "test-email@yahoo.com"
firstName: "John"
id: "103138"
lastName: "Dough"
middleName: ""
organization: ""
partnerId: "108765.1"
paymentAmount: "$5.00 "
paymentDate: "7/30/2015"
paymentType: "CASH"
phoneNumber: "(999)999-9999"
spouseFirstName: ""
spouseLastName: ""
spouseTitle: ""
state: "IL"
title: "Mr. & Mrs."
zipCode: "60525-2544"
在一个名为“contributions”的数组中有 20 多个。 如何按 paymentDate "mm/dd/yyyy" 对这个数组进行排序。显然它会先排序年份,然后是月份,然后是日期。
我已经看到代码在某种程度上做到了这一点,但我在从一个不仅仅是日期数组的数组中实现它时遇到了麻烦。
它也不能正确地对日期进行排序,只是月/年。年份是一个单独的数组,我出于不同的目的提取了所有日期。
this.years.sort(function (a, b) { return a - b });
但我正在尝试按日期对第一个代码块中列出的整个数组进行排序。
如果有人可以帮助我或指引我正确的方向,那将是一个巨大的帮助!
谢谢!
使用@mplungjan 方法的附加信息。这是发送到表时的全部输出。
【问题讨论】:
-
contributions.sort(function (a, b) { return new Date(a.paymentDate).getDate() - new Date(b.paymentDate).getDate(); }); -
似乎这只是按天排序,而不是按年、月、日排序。但是,它确实帮助我理解了日期特定部分的排序部分是如何工作的。 getDate 只抓取当天,这就是为什么它只按天排序。
-
假设您的日期是可解析的,这是极不可能的。
-
我用它的样子编辑了我的帖子。
-
我的错误:你需要 .getTime() 而不是 getDate()
标签: javascript arrays angular typescript sorting