Javascript 通过负索引访问数组元素
我想通过任意索引访问数组的内容。假设我们有一个包含三个元素的数组。模在这里很有用,它完美地解决了任何正整数的问题:Javascript 通过负索引访问数组元素,javascript,arrays,modulo,negative-number,Javascript,Arrays,Modulo,Negative Number,我想通过任意索引访问数组的内容。假设我们有一个包含三个元素的数组。模在这里很有用,它完美地解决了任何正整数的问题: var arr = array['foo', 'bar', 'foobar']; var someInteger = 3; var element = array[ someInteger%arr.length ]; // returns the first element 'foo' 现在我想对负整数得到同样的结果,但我不知道怎么做=( 我真的希望我的问题足够清楚(你可以用 n
var arr = array['foo', 'bar', 'foobar'];
var someInteger = 3;
var element = array[ someInteger%arr.length ]; // returns the first element 'foo'
现在我想对负整数得到同样的结果,但我不知道怎么做=(
我真的希望我的问题足够清楚(你可以用
n
integern%l
整数在(-l,l)
n%l+l
整数在(0,2*l)
(n%l+l)%l
中的整数[0,l)
arr[(某个整数%arr.length+arr.length)%arr.length]
或者,您可以使用地板、天花板和截断:
n-Math.floor(n/l)*l;//在[0,l]中
n-Math.ceil(n/l)*l;//in(-l,0)
n-Math.trunc(n/l)*l;//in(-l,l)
如果数字为负数:while(someInteger < 0)
someInteger += arr.length;
while(someInteger<0)
someInteger+=arr.length;
然后使用<代码>数组[AdOxDigal%Ar.List] 正如你之前所做的。
这真的非常有用!非常感谢,聪明的男孩!我希望我几小时前问过我的问题……“莉莉根本就不……”如果你有很多索引,考虑在一个函数中实现它,以避免每次重复它。while(someInteger < 0)
someInteger += arr.length;