Javascript 如果条件在循环中不起作用

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循环

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

可能使用parseInt
if(parseInt(users[i].cpu1)<50)
值72和99大于50,因此它们不会通过if条件
if(users[i].cpu1=99)
结果始终为true,因为您使用的是赋值运算符
=
而不是比较
=
,然后您希望保留筛选器(并放弃console.log)。否。它们现在被过滤了你的代码怎么了?