我可以以某种方式改进它吗? 我想让它变得更容易,也许在将来的循环中我想显示更多的问题而不仅仅是 10 个。我尝试使用带有字符串的变量而不是 ,,idX"但它不起作用。 我不想使用太多 if 语句
这是我的 json: {"numberOfQuestions":2,"id1":{"id":"2"},"id2":{"id":"1"}}
$.getJSON(apiUrl+'/api-V1/generateQuestions.php?category=math', function(data) {
numberOfQuestions = data.numberOfQuestions;
questionIDs = new Array();
if(numberOfQuestions>=1){
questionIDs.push(data.id1.id);
}
if(numberOfQuestions>=2){
questionIDs.push(data.id2.id);
}
if(numberOfQuestions>=3){
questionIDs.push(data.id3.id);
}
if(numberOfQuestions>=4){
questionIDs.push(data.id4.id);
}
if(numberOfQuestions>=5){
questionIDs.push(data.id5.id);
}
if(numberOfQuestions>=6){
questionIDs.push(data.id6.id);
}
if(numberOfQuestions>=7){
questionIDs.push(data.id7.id);
}
if(numberOfQuestions>=8){
questionIDs.push(data.id8.id);
}
if(numberOfQuestions>=9){
questionIDs.push(data.id9.id);
}
if(numberOfQuestions>=10){
questionIDs.push(data.id10.id);
}
loadQuestion(questionIDs[currentQuestion-1]);
});
最佳答案
您可以使用 for 循环并使用 id
访问属性并连接 i
的值:
for (let i = 1; i <= data.numberOfQuestions; i++) {
questionIDs.push(data['id' + i].id);
}
let questionIDs = [];
let data = {
"numberOfQuestions": 2,
"id1": {
"id": "2"
},
"id2": {
"id": "1"
}
}
for (let i = 1; i <= data.numberOfQuestions; i++) {
questionIDs.push(data['id' + i].id);
}
console.log(questionIDs);
关于javascript - 使用 jquery 改进 json 解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53526211/