首页 > 解决方案 > 根据开始值和结束值对数字数组进行排序

问题描述

我有一个包含数值的数组,这些值的范围从 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?
});

标签: javascriptsortingnumbers

解决方案


使用排序、拼接、推送和取消移位

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)


推荐阅读