我想知道如何根据最大计数值迭代数组,而不是基于数组的长度。例如,如果一个数组有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
。
答案 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)
使用 - 嵌套三元运算符
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;
答案 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];
}