【发布时间】:2016-06-17 15:43:14
【问题描述】:
编辑:4 年后,我认为这是我提出的一个不好的问题。我希望它对某人有用,但我认为它是一个很好的删除候选者。继续撒盐。
假设我有一个数组,并且某个函数遍历该数组的子数组。此外,如果子数组包含超出数组末尾的索引,则子数组从数组的第一个索引处恢复。
例如,如果数组长度为 50,并且索引从 0 开始,
48 49 0 1 ...
特别是,我使用 JavaScript 的 Remainder 运算符来从头到尾。 array[i%array.length].
虽然这为我提供了我想要的连续索引集,但我还想根据索引值进行一些过滤,如果它们超出某个点,我想排除它们。例如,只保留“介于”48 和 1 之间的索引;开始包容,结束排斥。
我一直在做的只是在item.index >= idx && item.index < end 之类的条件上进行过滤,但这显然不适用于数组的开头和结尾。
那么,正如标题所述,如何有效地检查给定索引或一组索引是否在这些点之间?
就本题而言,起点是包容的,终点是排斥的。
编辑:作为对反对票的回应,我已经澄清了这个问题并添加了几个 sn-ps。为简洁起见,我省略了问题的每个细节。
【问题讨论】:
-
一个元素位于其他两个元素之间是什么意思?
-
你说的方式,任何点都在任何其他点之间,因为每个点都可以稍后再次出现。
-
这不会造成无限循环吗?也许您应该解释为什么需要这样做。
-
研究使用模运算作为起点。这样想起来就容易多了
-
请在您的问题中提供MCVE。完整性比简洁更重要。
标签: javascript arrays performance