2013-03-08 71 views
0

我有一个循环:添加到我在一个循环?

for (var i in $quizData['answers']) { 

    $(".question"+(parseInt(i)+1)+" a").text($quizData['answers'][i]['answer']); 

}; 

在循环我需要添加一个1到我,我已经通过parseInt函数来实现这一点,有没有更好的办法?

+0

你可以做+ i + 1,但parseInt更安全。 – 2013-03-08 22:45:10

+0

您需要确保$ quizData键是数字。如果是这样,只需使用**(i + 1)** – letiagoalves 2013-03-08 22:46:58

+1

@KevinB'parseInt(x,10)',也许..缺少假设的十进制基数是JavaScript没有正确的。 – 2013-03-08 22:59:03

回答

0

只需使用一个循环,然后i + 1如果与0第一i开始:

for (var i = 0; i < $quizData.length; i++) { 
    $(".question" + (i + 1) + " a").text($quizData['answers'][i]['answer']); 
} 
+3

根据他的例子,'i'不需要从0开始,或者甚至是连续的 – 2013-03-08 22:45:13

+1

我敢打赌 - 他只是希望他的课程基于1而不是基于0的数据。 – Barmar 2013-03-08 22:46:26

+0

我需要从0开始,因为我的数据从0开始,但是我为每个数据块定位的类从1开始 – panthro 2013-03-08 23:03:47

0

你的代码是完全没问题。没有“更好”的方法来做同样的事情。

无论您如何定义它,javascript中的对象键总是一个字符串。

例如:

var obj = { 1:"a", 2:"b"} 

最后很可能会因为

{ "1":"a", "2":"b"} 
0

如果$ quizData [ '答案']是一个数组,你可以做

$quizData['answers'].forEach(function(element,i){ 
    $(".question"+(i+1)+" a").text(element['answer']); 
}); 

第一函数的参数是元素,第二个是你的数组的索引

+0

哦,哇,我只是试过了。从来不知道,即使存在。 – AlexCheuk 2013-03-08 22:55:43

+0

这没有回答这个问题,我在循环中需要+1 – panthro 2013-03-08 23:06:23

+0

我是你的数组的索引,你可以添加+1到你的我没有任何问题 – Bruno 2013-03-08 23:19:33

相关问题