javascript - 通过负索引访问数组元素

标签 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'

现在我想对负整数有相同的结果,但我不知道如何 =(

var arr = array['foo', 'bar', 'foobar'];
var someInteger = -1; // I need this negative integer to return the last element which it doesn´t
var someInteger = -2; // I need this negative integer to return 'bar'
var someInteger = -3; // I need this negative integer to return 'foo'
var someInteger = -4; // I need this negative integer to return 'foobar'
var someInteger = -5; // I need this negative integer to return 'bar'

我真的希望我的问题足够清楚 =)

最佳答案

你可以使用

  1. n 整数
  2. n % l (-l, l)
  3. 中的整数
  4. n % l + l (0, 2*l) 中的整数
  5. (n % l + l) % l [0, l)
  6. 中的整数

在 JavaScript 中,

arr[(someInteger % arr.length + arr.length) % arr.length]

或者,您可以玩地板、天花板和 chop :

n - Math.floor(n / l) * l; // in [ 0,l)
n - Math.ceil (n / l) * l; // in (-l,0]
n - Math.trunc(n / l) * l; // in (-l,l)

关于javascript - 通过负索引访问数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30549077/

相关文章:

javascript - htaccess 与 ajax 脚本冲突

c++ - 为什么if语句没有打印出字符串?程序文件

json - 如何使用 jQuery 创建 JSON 对象

c++ - 优化 C++ 中的模块化算术计算

c++ - 用于计算非常大的正整数的幂函数的数字模数

javascript - 测试嵌套 JavaScript 对象键是否存在

javascript - 从模式的末尾去除特定字符串的结尾

c++ - 如何一步获得商和余数?

javascript - 你能增加 meteor 中的 react 变量吗?

java - 我需要一些帮助来设计数组