如何基于最大计数值而不是基于数组的长度来迭代数组

时间:2015-01-16 10:53:35

标签: javascript

我想知道如何根据最大计数值迭代数组,而不是基于数组的长度。例如,如果一个数组有6个元素,并且最大迭代次数为7.例如,

var arrayData = ['A','B','C','D','E','F'];
var count = 7;

for( var n=0;n<count;n++)
{

    predictValue = arrayData[n];                
}
alert(predictValue);

上面的代码将返回值直到位置5即F值,如果n = 6,则它将返回undefined,我希望计数器从第0位开始,即如果计数器n达到长度则读取值A. arrayData

5 个答案:

答案 0 :(得分:2)

尝试模数:

 ...predictValue = arrayData[n % arrayData.length]; ...

答案 1 :(得分:0)

试试这个:

predictValue = arrayData[n] ? arrayData[n] : arrayData[n - count + 1];

var arrayData = ['A','B','C','D','E','F'];
var count = 7;

for( var n=0;n<count;n++)
{

    predictValue = arrayData[n] ? arrayData[n] : arrayData[n - count + 1] ;                
}
alert(predictValue);

答案 2 :(得分:0)

使用 - 嵌套三元运算符

&#13;
&#13;
var arrayData = ['A','B','C','D','E','F'];
    var count = 7;
    
    for( var n=0;n<count;n++)
    {
    
    predictValue = arrayData[n] ? arrayData[n] : arrayData[n - count + 1];
    
    }
    
    alert(predictValue)
&#13;
&#13;
&#13;

答案 3 :(得分:0)

数组的长度方法返回长度(或字符串也取决于参数)

例如:

for(var i = 0;array.length,i++){
   //Some code goes here 
}

所以你的代码应该是这样的:

var arrayData = ['A','B','C','D','E','F'];
var count = 7;

for( var n=0;n<arrayData.length;n++)
{

predictValue = arrayData[n];

}

alert(predictValue);

了解更多here

答案 4 :(得分:0)

如果您在到达终点后询问如何reiterate超过array那么您需要进行检查:

for(var n = 0; n < count; n++) {
    if (n == arrayData.length) {
        n = 0;
    }
    predictValue = arrayData[n];
}