我有一个简单的数组
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);
}
当将其记录到控制台时,它会记录A,AB,ABC,ABCD,ABCDundefined,并不断重复未定义,直到它到达循环结束。我的问题是我做错了什么,所以每个循环只记录一个字母。
答案 0 :(得分:2)
questionOption += answerAttribute[i]
此声明是questionOption = questionOption + answerAttribute[i]
的简短形式。它会在循环的每次迭代中将下一个元素追加到questionOption
。
看起来你想要的可能是questionOption = answerAttribute[i]
。这会将questionOption
中的值替换为新元素,而不是附加它。
答案 1 :(得分:1)
您只需记录当前值,如下所示:
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];
console.log(questionOption );
答案 2 :(得分:1)
您正在循环The model item passed into the dictionary is of
type 'System.Collections.Generic.List`1[AVASupplierPortal.Models.PurchaseOrder]',
but this dictionary requires a model item of
type 'AVASupplierPortal.Models.PurchaseOrder'.
索引并将它们应用于quizContent
数组。我相信你想要的是一个嵌套循环......
answerAttribute
答案 3 :(得分:0)
不知何故,我怀疑问题实际上是关于日志记录,实际上是关于结果字符串。
无论哪种方式,我都会在没有循环的情况下这样做。
var answerAttribute = ['A','B','C','D'];
var quizContent = [1,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(questionOption);
它只是将answerAttribute
加入到一个字符串中,并重复该字符串answerAttribute
长度可以分为quizContent.length
(向上舍入)的次数。< / p>
然后将最终字符串调整为quizContent
的大小,以从舍入中删除任何额外内容。
请注意,此方法假定每个属性使用一个字符。如果不是单一的,但它们的长度都相同,可以调整为仍然有效。