Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对数组排序并指定起始位置_Javascript_Arrays_Sorting - Fatal编程技术网

Javascript 对数组排序并指定起始位置

Javascript 对数组排序并指定起始位置,javascript,arrays,sorting,Javascript,Arrays,Sorting,使用Javascript,我希望对整数数组进行排序,但我希望能够指定数组中的第一项,而不是从0开始。例如,使用此数组作为起点: var array = [4, 0, 1, 2, 5, 8, 7, 3, 6]; 如果我想重新订购,但从3开始,最终结果是: var array = [3, 4, 5, 6, 7, 8, 0, 1, 2]; 从8开始将如下所示: var array = [8, 0, 1, 2, 3, 4, 5, 6, 7]; 从0开始将如下所示(默认排序): 你知道我该怎么做吗?

使用Javascript,我希望对整数数组进行排序,但我希望能够指定数组中的第一项,而不是从0开始。例如,使用此数组作为起点:

var array = [4, 0, 1, 2, 5, 8, 7, 3, 6];
如果我想重新订购,但从3开始,最终结果是:

var array = [3, 4, 5, 6, 7, 8, 0, 1, 2];
从8开始将如下所示:

var array = [8, 0, 1, 2, 3, 4, 5, 6, 7];
从0开始将如下所示(默认排序):

你知道我该怎么做吗? 谢谢。

这个怎么样

var array = [3, 4, 0, 1, 2, 5];

var startNumber = 2;
var test = array.sort(function(a, b) {
    if(b < startNumber) {
        return -1;
    } else if(a < startNumber) {
        return 1;
    } else {
       return a - b;
    }
});

// test == [2, 3, 4, 5, 0, 1]
var数组=[3,4,0,1,2,5];
var startNumber=2;
var test=array.sort(函数(a,b){
如果(b
这应该可以做到:

array.sort(function(a, b) {
   return (a<2) - (b<2) || a - b;
});
array.sort(函数(a,b){

return(a我不太确定您想要实现什么,因为在原始数组中,
0
1
已经排序。
假设要对整个数组进行排序,然后移动数组以将前两个元素放在末尾,则可以使用以下代码:

var array = [3, 4, 0, 1, 2, 5];
array = array.sort();
i = array.indexOf(2);
move = array.splice(0, i);
array.splice(array.length, 0, move);
alert(array);

演示是。

你的意思是什么?排序不是从某个地方开始的。你想对数组排序,然后旋转它,直到
2
在前面吗?请注意,这将使
0
1
未排序。你能解释一下
(a@codezombie:您可以使用布尔值进行计算,它们在被减法时将被强制转换为
0
/
1
。感谢您的回答!到目前为止还不知道!:-)但是如果在javascript中
(a
0
的计算结果为
false
var array = [3, 4, 0, 1, 2, 5];
array = array.sort();
i = array.indexOf(2);
move = array.splice(0, i);
array.splice(array.length, 0, move);
alert(array);