javascript - 两个元素之间的数组位置差异

标签 javascript arrays algorithm

我有这个数组: [1,2,3,4,5]

我想确定两个元素之间的位置差异,但是在“旋转”模式下。

例子: 我有 3,我想知道 2 有多远,我做了一个 3.position - 2.position,我得到了 1。

但是,如果我有 5,并且我想知道 5.position 和 1.position 之间的位置差异,根据先例差异,我将有 5-1=4,并且因为有数组旋转,我想要1.

你知道我该怎么做吗? (我在 Javascript 工作)

编辑: 这是一个可以更清楚地解释我想做什么的抽奖

编辑 2:更好地绘制 Draw circular

最佳答案

同时计算数组内的距离和环绕时的距离,取最小值。

此代码使用 pos1pos2作为数组中项目的索引 arr ,并假设 pos1 < pos2 :

var distance = Math.min(pos2 - pos1, pos1 + arr.length - pos2);

关于javascript - 两个元素之间的数组位置差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373567/

相关文章:

java - 从txt文件中读取整数并存储到数组中

algorithm - 嵌套几何序列的复杂性

javascript - 帮我创建一个 Firefox 扩展(Javascript XPCOM 组件)

javascript - 嵌套的 if 语句和 && (and) 运算符在这个 for 循环中有何不同?

javascript - FormType 未在 Dynamics CRM 2016 上返回正确的值

javascript - 为什么 Array.prototype.map()、Array.prototype.forEach() 和 For-In 循环对 Array.fill() 给出错误的结果?

algorithm - 在数字数据集中查找 'Outliers'

algorithm - 有效地找到前 n 个素数

javascript - Chrome 中的 Netflix 视频播放器 - 如何寻找?

javascript - 自定义图像作为单选按钮