【问题标题】:For loop doesn't end using Node.jsFor 循环不使用 Node.js 结束
【发布时间】:2018-03-07 14:24:52
【问题描述】:

我有这个简单的代码:

文件app.js

var cheerio = require('cheerio');
var express = require('express');
var fs = require('fs');
var request = require('request');

var downloader = require('./routers/downloader.js');

const app = express();

downloadAll();

function downloadAll() {
    downloader.test();
}

文件downloader.js

var cheerio = require('cheerio');
var express = require('express');
var fs = require('fs');
var request = require('request');
var methods = {};

methods.test = function(req, res) {
    for(var i = 1; 10; i++) {
        console.log(i); // DOESN'T WORK
    }

    var obj;
    fs.readFile('./output/ita-2015-24m.json', 'utf8', function(err, data) {
        if(err) {
            throw err;
        }
        obj = JSON.parse(data);
        console.log(obj); 
    }
}

module.exports = methods;

当我使用node app.js 运行app.js 时,我得到:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ...。 循环没有结束。

我尝试改变这个循环的位置,将它插入到 readFile 函数中,但这是同样的问题。

我的目标是遍历obj 对象。

为什么?我该如何解决?

【问题讨论】:

  • 您的var methods = {}; 是一个变量,它保存空object 的值。您应该使用 for in 循环(注意不可枚举的属性)而不是使用 for 循环测试您的代码

标签: javascript node.js for-loop


【解决方案1】:

当我使用节点 app.js 运行 app.js 时,我得到:1、2、3、4、5、6、7、8、9、 10, 11, 12, .... 循环没有结束。

您的循环没有结束条件,因此它将继续递增i

做起来

for(var i = 1; i <= 10; i++) {
    console.log(i); // DOESN'T WORK
}

【讨论】:

    【解决方案2】:

    你写过 for(var i = 1; 10; i++)

    循环永远不会结束,因为 10 始终为真(或至少从不为假)。应该是这样的:

    for(var i = 1; i&lt;10; i++)

    【讨论】:

      【解决方案3】:

      代替:

      for(var i = 1; 10; i++)
      

      试试:

      for(var i = 1; i <= 10; i++) 
      

      【讨论】:

        【解决方案4】:

        如果你想要 10 个元素,你可以使用

        for(var i = 1; i<= 10; i++)
        

        for(var i = 0; i< 10; i++)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多