为什么除了for循环外,所有代码都起作用?

时间:2019-05-01 10:06:46

标签: javascript for-loop

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

var mongoose = require('mongoose');

var Schema = mongoose.Schema;

var DishSchema = new Schema(
  {
    name : {type: String, required: true, max: 100},
    price : {type: Number, required: true, max: 500},
    description: {type: String, required: true, max: 2000},
    picture: {type: String, required: false, max: 100},
    category: {type: String, required: true, max: 50},
    restaurant: {type: Schema.Types.ObjectId, required: true, ref:'Restaurant'}
  },
  {
  toObject: {
    virtuals: true
  },
  toJSON: {
    virtuals: true
  }
});

module.exports = mongoose.model('Dish', DishSchema);

我的res.length只有4个输出

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

对我来说,您应该使用<=或<内部循环

for(i=0; i <= res.length; i++){
  message.channel.send(res[i].name)
  console.log(i)
}

答案 2 :(得分:2)

i = 0,而res.length = 4,则循环立即终止。将其更改为i