gpt4 book ai didi

javascript - 从中心位置旋转数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:20:29 26 4
gpt4 key购买 nike

我正在尝试从中心位置旋转一个数组。比如说:

对于数组 [1,2,3,4,5] 如果我选择 5 作为当前元素,新数组应该是 [3 ,4,5,1,2]。如果我选择4,它应该是[2,3,4,5,1]

我尝试了下面的代码,它在一定程度上可以工作,但它将选定的位置放在开头而不是中心。

我们将不胜感激任何对该方法的帮助

var arr = [0,1,2,3,4];
function rot(arr, ind)
{
var narr = [];
var len = arr.length;
for(var i=0; i<arr.length; i++)
{
narr.push((i+ind<len?arr[i+ind]:arr[len-i-1]));
}
return narr;
}
console.log(rot(arr,0))

最佳答案

尝试

let rot= (a,v,i=a.indexOf(v)) => a.map((x,j)=> a[(i+1+j+a.length/2)%a.length|0])

其中 n|0 将 float 转换为整数。我们使用 arrow function , indexOfmap

let arr=[1,2,3,4,5];

let rot=(a,v,i=a.indexOf(v))=>a.map((x,j)=>a[(i+1+j+a.length/2)%a.length|0]);

console.log( rot(arr,4) );
console.log( rot(arr,5) );

关于javascript - 从中心位置旋转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com