也许有人可以解释一下如何从星期一开始对一系列星期进行排序……
export const WeekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
WeekDays.sort(
(a, b) =>
WeekDays.indexOf(a) - WeekDays.indexOf(b)
);但是结果是:星期三,星期一,星期二,星期五,星期三...希望有人能帮上忙。
发布于 2021-05-25 22:56:49
问题是sort()执行就地排序,而不是返回一个新的排序数组,所以您的引用数组是排序的。尝试对单独的数组进行排序:
const WeekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
const daysToBeSorted = WeekDays.slice();
daysToBeSorted.sort(
(a, b) =>
WeekDays.indexOf(a) - WeekDays.indexOf(b)
);也就是说,这种方法是在排序的每次迭代中查找当天的索引(indexOf()),这通常效率不高。您可以使用Map或对象来快速访问当天的索引。
https://stackoverflow.com/questions/67690482
复制相似问题