为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript for循环在结束前停止

Javascript for循环在结束前停止

Qyouu 2021-06-02 18:50:52
我有一个非常简单的自制 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;...)


查看完整回答
反对 回复 2021-06-11
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信