Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数组中循环并在到达结束时返回到开始_Javascript_Arrays - Fatal编程技术网

Javascript 在数组中循环并在到达结束时返回到开始

Javascript 在数组中循环并在到达结束时返回到开始,javascript,arrays,Javascript,Arrays,我有一个简单的数组 var answerAttribute = ['A','B','C','D']; 我有16个列表项,我试图完成的是循环列表的长度,不管列表是2项还是300项。我希望有一个与之关联的数据属性a、B、C或d 以下是我的工作内容: var questionOption = ''; for(var i = 0; i < quizContent.length; i++) { questionOption = answerAttribute[i % answerAttri

我有一个简单的数组

var answerAttribute = ['A','B','C','D'];
我有16个列表项,我试图完成的是循环列表的长度,不管列表是2项还是300项。我希望有一个与之关联的数据属性a、B、C或d

以下是我的工作内容:

var questionOption = '';
for(var i = 0; i < quizContent.length; i++) {
    questionOption = answerAttribute[i % answerAttribute.length];
    console.log(questionOption);
}
var-questionOption='';
对于(var i=0;i

将此记录到控制台时,它会记录A、AB、ABC、ABCD、ABCD未定义,并不断重复未定义,直到得出循环结论。我的问题是我做错了什么,以至于每个循环只记录一个字母。

您可以只记录当前值,如下所示:

var questionOption = '';
for (var i = 0; i < quizContent.length; i++) {
    //what is questionOption used for?
    questionOption += answerAttribute[i];
    console.log(answerAttribute[i]);
}

您可以只记录当前值,如下所示:

var questionOption = '';
for (var i = 0; i < quizContent.length; i++) {
    //what is questionOption used for?
    questionOption += answerAttribute[i];
    console.log(answerAttribute[i]);
}
此语句是
questionOption=questionOption+answerAttribute[i]
的缩写。它将在循环的每次迭代中将下一个元素附加到
questionOption

看起来您想要的可能是
questionOption=answerAttribute[i]
。这将用新元素替换
questionOption
中的值,而不是附加它

此语句是
questionOption=questionOption+answerAttribute[i]
的缩写。它将在循环的每次迭代中将下一个元素附加到
questionOption


看起来您想要的可能是
questionOption=answerAttribute[i]
。这将用新元素替换
questionOption
中的值,而不是附加它。

不知何故,我怀疑问题实际上是关于日志记录的,实际上是关于结果字符串的

无论哪种方式,我都不会做循环

var-answerAttribute=['A','B','C','D'];
var quizContent=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
var questionOption=answerAttribute
.join(“”)
.repeat(Math.ceil(quizContent.length/answerAttribute.length))
.slice(0,quizContent.length);

console.log(查询选项)不知何故,我怀疑这个问题实际上是关于日志记录的,实际上是关于结果字符串的

无论哪种方式,我都不会做循环

var-answerAttribute=['A','B','C','D'];
var quizContent=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
var questionOption=answerAttribute
.join(“”)
.repeat(Math.ceil(quizContent.length/answerAttribute.length))
.slice(0,quizContent.length);

console.log(查询选项)
您正在循环
quizContent
索引,并将它们应用于
answerAttribute
数组。我相信你想要的是一个嵌套的循环

var quizContent=Array(10);//假设你有10个测验题。。。
var answerAttribute=['A'、'B'、'C'、'D'];
对于(var i=0;iconsole.log(quizContent)
您正在循环
quizContent
索引,并将它们应用于
answerAttribute
数组。我相信你想要的是一个嵌套的循环

var quizContent=Array(10);//假设你有10个测验题。。。
var answerAttribute=['A'、'B'、'C'、'D'];
对于(var i=0;i
console.log(quizContent)answerAttribute[i]
的修改应该改为
answerAttribute[i%4]
否则,如果quizContent.length>3我想你想要(var i=0;i但是很难说。请重新描述你的描述……你的问题是什么?你的情况应该提前发布,完成问题。很抱歉。啊,过早的提问。这是常有的事对@clockwork comment
answerAttribute[i]
的修改应该改为
answerAttribute[i%4]
否则,如果quizContent.length>3我想你想要(var i=0;i但是很难说。请重新表述您的描述…如果
quizContent.length>3
@SanchitPatiyal--no
在Javascript中索引越界,您将无法定义@Malvolio我的意思是没有定义:如果这个问题没有答案,我想有一个未定义的会有意义。如果
quizContent.length>3
@sanchipatiyal--no
在Javascript中索引越界
,你会得到未定义@Malvolio我的意思是没有定义:如果这个问题没有答案,我想有一个未定义的答案会让我感谢你的解释。尽管如此,这正是我所需要的,但是在数组结束(到达'D')之后,它开始输出未定义的内容。然而,我将你的建议与@Jonas W结合起来,似乎得出了一个结论。我已更新代码以反映。非常感谢。正如其他人所提到的,它输出
undefined
,因为
answerAttribute
数组只有4个元素,但是
i
的值可能更大,这取决于
quizContent的长度
questionOption += answerAttribute[i]