通过负索引访问数组的元素 [英] Accessing an element of an array through negative indexes

查看:129
本文介绍了通过负索引访问数组的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过任意索引访问数组的内容。可以说我们有一个包含三个元素的数组。模在这里派上用场,可以完美地解决任何正整数的问题:

I want to access contents of an array by arbitrary indexes. Lets say we have an array with three elements in it. The modulo comes in handy here and solves the problem for any positive integer perfectly:

var arr = array['foo', 'bar', 'foobar'];
var someInteger = 3;
var element = array[ someInteger%arr.length ]; // returns the first element 'foo'

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

Now I would like to have the same result for negative integers but I do not know how =(

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'

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

I really hope my problem is clear enough =)

推荐答案

您可以使用


  1. n 整数

  2. n%l <$中的整数c $ c>(-l,l)

  3. n%l + l <$中的整数c $ c>(0,2 * l)

  4. (n%l + l)%l 完整er in [0,l)

  1. n integer
  2. n % l integer in (-l, l)
  3. n % l + l integer in (0, 2*l)
  4. (n % l + l) % l integer in [0, l)

在JavaScript中,

In JavaScript,

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

或者,您也可以玩地板,天花板和截顶游戏。

Alternatively, you can play with flooring, ceiling and truncating:

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)

这篇关于通过负索引访问数组的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆