gpt4 book ai didi

javascript - 拆分数组将所选索引保持在中心

转载 作者:行者123 更新时间:2023-11-30 06:51:10 25 4
gpt4 key购买 nike

我有一个这样的数组:[ 'a', 'b', 'c', 'd', 'e' ]。我需要将它分成两半,但选择一个索引作为新的中心,即在选择作为新中心的索引前后始终保持相同数量的元素。期望结果的示例:

// index: 1
[ 'e', 'a', 'b', 'c', 'd' ]

// index: 3
[ 'b', 'c', 'd', 'e', 'a' ]

我用 slice 和负值尝试了一些东西:

(function splitChosingMiddle(arr, index) {
const half = Math.floor(arr.length / 2)
return [
...arr.slice(index - half),
...arr.slice(index, half + 1)
]
})([ 'a', 'b', 'c', 'd', 'e' ], 0)

但它只有在新中心是 0 索引时才有效,任何其他索引都会使逻辑崩溃。我相信我误解了 splice 的负长度的使用。

有人可以帮我解决这个算法吗?

最佳答案

试试这个

function rotate (array, index) {
var head = array.slice();
var tail = head.splice(array.length - index, index);
return tail.concat(head);
}

应该可以解决问题。但是试着去理解它

关于javascript - 拆分数组将所选索引保持在中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46984031/

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