在JavaScript中为日期和名称编写排序



如何在JavaScript中为日期和名称编写排序?我有一张桌子。有2列:namecreated date

name:  ["A", "A9", "A10", "A11", "A3"]
createdDate: ["Apr 2, 2019 3:07 PM", "Apr 10, 2019 9:25 AM", "Apr 30, 2019 6:08 PM", "Apr 10, 2019 8:25 AM", "Apr 2, 2019 8:07 PM"]

我已经尝试使用排序方法。输出应该喜欢:

name: ["A", "A3", "A9", "A10", "A11"]
createdDate: ["Apr 2, 2019 3:07 PM", "Apr 2, 2019 8:07 PM","Apr 10, 2019 8:25 AM", "Apr 10, 2019 9:25 AM", "Apr 30, 2019 6:08 PM"]

这是您可以使用localecompare((将name数组alphanumerer -alphanumerer -ainting((和将数字作为选项之一传递。

的方式。

const name =  ["A", "A9", "A10", "A11", "A3"];
name.sort((a, b) => a.localeCompare(b, 'en', { numeric: true }));
console.log(name);

这是您可以按日期对它们进行排序的方式。从本质上讲,进行比较时,我们将它们转换为JavaScript日期对象。

const createdDate = ["Apr 2, 2019 3:07 PM", "Apr 2, 2019 8:07 PM","Apr 10, 2019 8:25 AM", "Apr 10, 2019 9:25 AM", "Apr 30, 2019 6:08 PM"];
createdDate.sort((a, b) => new Date(a) - new Date(b));
console.log(createdDate);

排序字符串:

array.sort(function(a, b) {
    var titleA = a.title.toLowerCase(), titleB = b.title.toLowerCase();
    if (titleA < titleB) return -1;
    if (titleA > titleB) return 1;
    return 0;
});

排序日期:

array.sort(function(a, b) {
    var dateA = new Date(a.release), dateB = new Date(b.release);
    return dateA - dateB;
});

有关更多详细信息

要正确执行此操作

字符串:

name.sort((a, b) => a.localeCompare(b, 'en', { numeric: true }));

日期:

createdDate.sort((a, b) => Date.parse(a) - Date.parse(b));

最新更新