非常快的问题, 我想按特定值排序一个数组,并将它总是放在中间。 例如......如果我的数组是:
myarr = [1,2,3,4,5];
函数middlelizeArr(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];
我怎么能这样做?有人可以帮帮我吗?
答案 0 :(得分:0)
首先,你需要有一个数组的大小,并找到你想要放在中间的数字的位置
如果, n =数组的大小 l =您希望将其放入中间的数字的位置
如果n / 2> l,然后顺时针移动你的号码,否则逆时针移动它。
答案 1 :(得分:0)
这是通过比较"中"的指数来完成的。数字到数组的长度,然后移动(和推动)直到它们相等。
我已通过以下方式实施:
function middlelizeArray(array, middle) {
var goal = Math.trunc(array.length/2);
while(array.indexOf(middle) != goal) {
array.push(array.shift());
}
return array;
}
这也可以直接添加到数组原型中。这样您就可以只说myArray.middlelize(2);
这样就可以了:
Array.prototype.middlelize = function(middle) {
var goal = Math.trunc(this.length/2);
while(this.indexOf(middle) != goal) {
this.push(this.shift());
}
return this;
}