我有一个非常简单的自制 API,它读取服务器上一些文件的内容,解析它们并以 JSON 发送它们的内容。我的网页使用 Ajax 调用 API,读取数据并将它们存储在自定义对象上。问题是,无论我在 JSON 中解析了多少文件,只有第一个文件被处理为我的 Javascript 代码。runs = [];function Solution(values) { this.number = values[0] this.weight = values[1] this.value = values[2] this.score = values[3]}function DateValue(date) { regex = new RegExp(/(\d{4})-(\d{1,2})-(\d{1,2})-(\d{1,2}):(\d{1,2}):(\d{1,2})-(\d{1,2})/) dateArray = date.split(regex) this.year = dateArray[1] this.month = dateArray[2] this.day = dateArray[3] this.hour = dateArray[4] this.minutes = dateArray[5] this.secondes = dateArray[6]} function Run(values) { this.algorithm = values["log"]["Algorithm used"] this.weight = values["log"]["Weight"] this.value = values["log"]["Value"] this.date = new DateValue(values["log"]["Date"]) this.solutions = [] for(i = 0; i < values["datas"].length; i++) { this.solutions.push(new Solution(values["datas"][i])) }}$.ajax({ url: 'api.php', // the data sent by the API is a valid JSON dataType: 'json', success: function(data, status) { console.log(data); for(i = 0; i < data.length; i++) { console.log(data[i]); var run = new Run(data[i]) runs.push(run); } }});在console.log(data)for循环正确打印所有从API收到的DATAS,但之前console.log(data[i])只打印数组的第一个元素,我不明白为什么。
1 回答
繁星coding
TA贡献1797条经验 获得超4个赞
您i
在多个位置使用单个全局索引变量进行循环。
您的第一个循环调用Run
,它运行另一个循环以完成增加i
变量。
开始你的循环,i
每次都声明一个本地:
for(var i=0;...)
添加回答
举报
0/150
提交
取消