我有这个数组: [1,2,3,4,5]
我想确定两个元素之间的位置差异,但是在“旋转”模式下。
例子: 我有 3,我想知道 2 有多远,我做了一个 3.position - 2.position,我得到了 1。
但是,如果我有 5,并且我想知道 5.position 和 1.position 之间的位置差异,根据先例差异,我将有 5-1=4,并且因为有数组旋转,我想要1.
你知道我该怎么做吗? (我在 Javascript 工作)
编辑: 这是一个可以更清楚地解释我想做什么的抽奖
编辑 2:更好地绘制
最佳答案
同时计算数组内的距离和环绕时的距离,取最小值。
此代码使用 pos1
和 pos2
作为数组中项目的索引 arr
,并假设 pos1 < pos2
:
var distance = Math.min(pos2 - pos1, pos1 + arr.length - pos2);
关于javascript - 两个元素之间的数组位置差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373567/