Javascript 如果条件在循环中不起作用
如果运行控制器文件时未执行条件 您可以使用for循环Javascript 如果条件在循环中不起作用,javascript,html,node.js,mongodb,Javascript,Html,Node.js,Mongodb,如果运行控制器文件时未执行条件 您可以使用for循环 for (var i = Users.length - 1; i >= 0; i--) { if (Users[i].cpu1 < 50) console.log('Value is less than 50'); }; for(var i=Users.length-1;i>=0;i--){ if(用户[i].cpu1
for (var i = Users.length - 1; i >= 0; i--) {
if (Users[i].cpu1 < 50)
console.log('Value is less than 50');
};
for(var i=Users.length-1;i>=0;i--){
if(用户[i].cpu1<50)
console.log('值小于50');
};
您将测试放在了错误的位置。循环位于映射函数的内部。当您登录到控制台时,用户已超出范围。如果您想每次都检查,它应该在map函数中
但是,如果只想保留cpu小于50的用户,请首先使用Array.filter。您仍然可以记录小于50项的cpu。e、 g
app.get('/view', function (req, res) {
User.aggregate(
{ $match: { "Host.Host_name": { $in: ["redhat1", "redhat2"] }}},
{ $group: { _id: "$Host.Host_name",cpu1:{ $last:'$CPU.CPU_Free'}}})
.exec(function (err,docs){
if (err) return handleError(err);
var Users = docs
.filter(function (User) {return User.cpu1 < 50; })
.map(function (User){
console.log('Value is less than 50');
return {
host: User._id,
cf: User.cpu1
}
});
res.render('index',{Users: Users});
});
});
app.get('/view',函数(req,res){
用户聚合(
{$match:{“Host.Host_name”:{$in:[“redhat1”,“redhat2”]},
{$group:{{{U id:$Host.Host_name',cpu1:{$last:'$CPU.CPU_Free'}}})
.exec(函数(错误、文档){
if(err)返回handleError(err);
var用户=文档
.filter(函数(用户){return User.cpu1<50;})
.map(函数(用户){
console.log('值小于50');
返回{
主机:用户。\u id,
cf:User.cpu1
}
});
res.render('index',{Users:Users});
});
});
如果要将所有用户返回到/view端点,则注释掉
。filter
行可能使用parseIntif(parseInt(users[i].cpu1)<50)
值72和99大于50,因此它们不会通过if条件if(users[i].cpu1=99)
结果始终为true,因为您使用的是赋值运算符=
而不是比较=
,然后您希望保留筛选器(并放弃console.log)。否。它们现在被过滤了你的代码怎么了?