我有一个代码,除了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个输出
答案 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