首页 > 解决方案 > 为什么除了 for 循环之外的所有代码都有效?

问题描述

我有一个代码,所有代码都在工作,除了 for 循环

let query = args.slice(1).join(' ');

client.database.query(`SELECT * FROM centres WHERE name="${query}"`, function (error, results, fields) {
    if (error) throw error;
    if (!results[0]) {
        message.channel.send(msg.cs.notExist)
    } else {
        client.database.query(`SELECT * FROM vehicules WHERE centre="${query}"`, function (err, res, field) {
            if (err) throw err;
            console.log(res.length)
            let i;
            for (i = 0; i === res.length; i++) {
                message.channel.send(res[i].name)
                console.log(i)
            }
            /*   message.channel.send(`${msg.cs.stats}${query}

            ${msg.abreviation.cdc}${client.functions.username(client, results[0].cdc)}
            ${msg.abreviation.cdca}${client.functions.username(client, results[0].cdca)}
            ${msg.cs.vehicule} ${results[0].vehicules}`)*/
        })
    }
});

我只有 4 的 res.length 输出

标签: javascriptfor-loop

解决方案


i=0; i===res.length; i++

for 循环中的条件是矛盾的。最初i是 0 并且给定循环的条件使得i总是等于res.length,然后在每次迭代之后i++将递增i。假设 res 的长度为 7。由于该条件,循环将永远不会运行,因为i它是 0。如果i<res.length是条件,那么它将正常工作。循环看起来像

for (i = 0; i < res.length; i++)

推荐阅读