javascript - 使用 jquery 改进 json 解码

标签 javascript jquery json api

我可以以某种方式改进它吗? 我想让它变得更容易,也许在将来的循环中我想显示更多的问题而不仅仅是 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/

相关文章:

javascript - Emberjs-data 限制集合

javascript - Expressjs : How to share route middleware accross routes

javascript - 如何用 ;$39 替换所有出现的相同字符,例如 '

jquery - 单个响应式网页的合理尺寸是多少

javascript - 将 jQuery 函数导入 Ember 错误 "i is not defined"

javascript - 力向图 - 定义节点的颜色,如果该节点同时是源和目标

php - Ajax 请求在我的 php 代码中不起作用

java - Jackson 多态反序列化预计为 START_ARRAY

java - 在 smartGWT 的 Listgrid 中渲染嵌套 JSON 字符串

javascript - 如何使用 json 数据中的纬度和经度查找最近的位置