Javascript 按值对数组排序并放在中间

Javascript 按值对数组排序并放在中间,javascript,jquery,arrays,arraylist,numbers,Javascript,Jquery,Arrays,Arraylist,Numbers,很快的问题,, 我想按特定值对数组进行排序,并将其始终放在中间。 例如如果我的数组是: myarr = [1,2,3,4,5]; 函数middlezarr(myarr,2)应返回以下数组: result [5,1,2,3,4] 并在偶数阵的情况下找到最佳条件 myarr = [1,2,3,4,5,6,7,8]; result [7,8,1,2,3,4,5,6]; 我怎么能这样做?有人能帮我吗?首先,你需要有一个数组的大小,并找到一个要放在中间的数字的位置 如果,, n=数组的大

很快的问题,, 我想按特定值对数组进行排序,并将其始终放在中间。 例如如果我的数组是:

myarr = [1,2,3,4,5];
函数middlezarr(myarr,2)应返回以下数组:

 result [5,1,2,3,4]
并在偶数阵的情况下找到最佳条件

    myarr = [1,2,3,4,5,6,7,8];

result [7,8,1,2,3,4,5,6];

我怎么能这样做?有人能帮我吗?

首先,你需要有一个数组的大小,并找到一个要放在中间的数字的位置

如果,, n=数组的大小 l=要将其置于中间的数字的位置


如果n/2>l,则顺时针移动数字,否则逆时针移动数字。

通过将“中间”数字的索引与数组的长度进行比较,然后移动(并推动)直到它们相等

我通过以下方式实现了它:

function middlelizeArray(array, middle) {
    var goal = Math.trunc(array.length/2);

    while(array.indexOf(middle) != goal) {
        array.push(array.shift());
    }
    return array;
}
这也可以直接添加到阵列原型中。这将允许您只说
myArray.middleze(2)

这将是这样做的:

Array.prototype.middlelize = function(middle) {
    var goal = Math.trunc(this.length/2);
    while(this.indexOf(middle) != goal) {
        this.push(this.shift());
    }
    return this;
}

您尝试了什么?为什么要这样做?1)在请求帮助之前,您需要向我们展示您尝试了什么。2) 甚至不要去想代码。想象一下,你有一堆桶,桶上有一张纸,上面写着一个数字。你会怎么分类呢?用几个不同的数字试试这个过程,你就有了你的算法。把它翻译成代码,你就完成了。如果我想用Obj做同样的事情?例如我想订购一份列有保险单的保险单。。。所以我的结构是
    123456
      我如何订购?这不起作用$('ul')。查找('li')。middlelize(7);