偏移数字的数组项索引

时间:2014-03-28 15:22:19

标签: javascript arrays

我有以下数组:

var list = ['first', 'second', 'third'];

现在我可以通过它们的索引分别访问第一,第二和第三个元素,分别为0 1和2.如果我尝试访问list[4],我将收到错误。

有没有办法这样,如果我尝试访问数组外的第n个元素,计数从头开始?以便list[4]返回“第一个”?

请记住,数字也可能是数组本身长度的多倍。

2 个答案:

答案 0 :(得分:1)

  1. 访问不存在的数组元素不会引发任何错误,但返回undefined

    var list = ['first', 'second', 'third'];
    console.log(list[3]);
    // undefined
    console.log(list[4]);
    // undefined
    
  2. 要包装数组,当索引大于长度时,则可以使用mod运算符,如下所示

    console.log(list[3 % list.length]);
    // first
    console.log(list[4 % list.length]);
    // second
    

答案 1 :(得分:0)

我在这里为你写了一个例子:http://jsfiddle.net/h8V9N/

Array.prototype.at = function(index) {  
     return index >= this.length ? this[0] : this[index]; 
};

// usage

var list = ['first', 'second', 'third']; 
console.log( list.at(88) );

我正在添加新方法' at'到Array对象原型。