У меня есть код, весь код работает, кроме цикла 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

-4
Guysmow 1 Май 2019 в 13:06

3 ответа

Лучший ответ
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++)
2
ellipsis 1 Май 2019 в 10:09

I = 0 изначально, а res.length = 4. Цикл немедленно завершается. Измените его на i

1
AlexGera 1 Май 2019 в 10:11

Для меня вы должны использовать <= или <внутри цикла

for(i=0; i <= res.length; i++){
  message.channel.send(res[i].name)
  console.log(i)
}
1
Kamil Naja 1 Май 2019 в 10:10