因此,分配是根据车辆类型分配停车位。 如果是2轮摩托车-摩托车现货,4轮摩托车-紧凑型和大型现货,公共汽车-5个大型现货
我需要一种优化方法来获得可用的停车位,即。 slot.occupied == false,并且我想避免多个for循环,因为数据将增加并且具有多个级别。
"levelNo":"1",
"row":{[
"rowNo":"1",
"slots":[{
"slotNo":1,
"slotType":"Motorcycle",
"occupied":false
},
{
"slotNo":2,
"slotType":"Motorcycle",
"occupied":false
},
{
"slotNo":3,
"slotType":"Motorcycle",
"occupied":false
},{
"slotNo":4,
"slotType":"Compact",
"occupied":false
},{
"slotNo":5,
"slotType":"Compact",
"occupied":false
},{
"slotNo":6,
"slotType":"Compact",
"occupied":false
},
{
"slotNo":7,
"slotType":"Large",
"occupied":false
},
{
"slotNo":8,
"slotType":"Large",
"occupied":false
}]
},
{
"rowNo":"2",
"slots":[{
"slotNo":1,
"slotType":"Motorcycle",
"occupied":false
},
{
"slotNo":2,
"slotType":"Motorcycle",
"occupied":false
},
{
"slotNo":3,
"slotType":"Motorcycle",
"occupied":false
},{
"slotNo":4,
"slotType":"Compact",
"occupied":false
},{
"slotNo":5,
"slotType":"Compact",
"occupied":false
},{
"slotNo":6,
"slotType":"Compact",
"occupied":false
},
{
"slotNo":7,
"slotType":"Large",
"occupied":false
},
{
"slotNo":8,
"slotType":"Large",
"occupied":false
}]
}]
}
Model(Schema)-请提出一种更好的存储此类数据的方法
levelNo:{
type:String,
required:true,
},
row:[{
rowNo:{
type:String,
required:true,
},
slots:[
{
slotNo:{
type:Number,
required:true,
},
slotType:{
type:String,
enum:['Motorcycle','Compact','Large']
},
occupied:{
type:Boolean,
required:true,
},
currentVehicle:{
type:String,
}
}],
}],
totalrows:{
type:Number,
required:true
},
levelIsFull:{
type:Boolean,
default:false,
}
})
答案 0 :(得分:0)
也许您可以创建一个变量来存储搜索停车位的车辆类型。 然后,您只需要一个for循环,即可搜索同样未被占用的停车位。您无需循环每个楼层,循环遍历所有停车位,并且在找到停车位时便会显示出停车位编号及其所在的楼层。
代替存储每个级别的数据。仅制作一个停车位模型,并在其中显示其所在的高度。 因此,该模型将类似于:
spotNumber: {
occupied: false,
type: "large",
level: 1
}
希望这会有所帮助