我有一個奇怪的問題嵌套for循環在Javascript中。我想用一種語言填充一組答案,然後將這些答案包含在另一個數組中。問題是,當我看到輸出時,只使用來自inner for循環的數組的最後一次迭代。我相信這與基於其他答案的關閉有關,但由於我在這裏沒有多個功能,所以我不確定這將如何。這是一個JS Fiddle。問題與簡單的嵌套for循環在Javascript中
下面是代碼:
var answer_array = [];
var content_array = [];
var i18n_array = ['en', 'fr', 'es'];
for (var i18nCount = 0; i18nCount < 3; i18nCount++) {
var i18nLang = i18n_array[i18nCount];
for (var ansIndex = 0; ansIndex < 3; ansIndex++) {
answer_array[ansIndex] = {
value: 'This is answer # ' + ansIndex + ' in this language ' + i18nLang
};
}
console.log(i18nCount);
console.log(i18nLang);
console.log(JSON.stringify(answer_array,null,4));
content_array[i18nCount] = {
i18n: i18nLang,
text: 'This question is in ' + i18nLang + ' language?',
answers: answer_array,
};
}
console.log(JSON.stringify(content_array,null,4));
它產生這樣的:
0
en
[
{
"value": "This is answer # 0 in this language en"
},
{
"value": "This is answer # 1 in this language en"
},
{
"value": "This is answer # 2 in this language en"
}
]
1
fr
[
{
"value": "This is answer # 0 in this language fr"
},
{
"value": "This is answer # 1 in this language fr"
},
{
"value": "This is answer # 2 in this language fr"
}
]
2
es
[
{
"value": "This is answer # 0 in this language es"
},
{
"value": "This is answer # 1 in this language es"
},
{
"value": "This is answer # 2 in this language es"
}
]
[
{
"i18n": "en",
"text": "This question is in en language?",
"answers": [
{
"value": "This is answer # 0 in this language es"
},
{
"value": "This is answer # 1 in this language es"
},
{
"value": "This is answer # 2 in this language es"
}
]
},
{
"i18n": "fr",
"text": "This question is in fr language?",
"answers": [
{
"value": "This is answer # 0 in this language es"
},
{
"value": "This is answer # 1 in this language es"
},
{
"value": "This is answer # 2 in this language es"
}
]
},
{
"i18n": "es",
"text": "This question is in es language?",
"answers": [
{
"value": "This is answer # 0 in this language es"
},
{
"value": "This is answer # 1 in this language es"
},
{
"value": "This is answer # 2 in this language es"
}
]
}
]
似乎西蒙娜詹尼正確回答了你的問題,請通過點擊對勾接受他的回答...謝謝 – CrandellWS 2014-09-05 23:20:35