javascript - 根据开始值和结束值对数字数组进行排序
问题描述
我有一个包含数值的数组,这些值的范围从 0 到 6。我想通过指定起始编号和结束编号以“升序”顺序对它们进行排序。
所以假设我想从 2 开始,到 1 结束。
这些值必须按如下方式排序:2、3、4、5、6、0、1
或者,如果我希望它们从 4 开始,并在 3 结束。
这些值必须按如下方式排序:4、5、6、0、1、2、3
我可能想多了,但我不知道如何使用 .sort() 功能,我将如何以及如何与哪些值进行比较?
const startFrom = 4;
const endAt = 3;
const arr = [0, 1, 2, 3, 4, 5, 6];
arr.sort((a, b) => {
// What should I compare to what here?
// .. and what do I return in which case?
});
解决方案
使用排序、拼接、推送和取消移位
const startFrom = 4;
const endAt = 3;
const arr = [0, 1, 2, 3, 4, 5, 6];
arr.sort(function(a,b){return a-b});
arr.splice(arr.indexOf(startFrom),1)
arr.splice(arr.indexOf(endAt),1)
arr.unshift(startFrom)
arr.push(endAt)
console.log(arr)