Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过数组中的数组循环以确定值_Javascript_Arrays_Loops - Fatal编程技术网

Javascript 通过数组中的数组循环以确定值

Javascript 通过数组中的数组循环以确定值,javascript,arrays,loops,Javascript,Arrays,Loops,我需要使用for循环遍历以下数组,并确定这些人的年龄是否在18岁以上,或者是否在18岁以下,并相应地记录一个字符串 我一直在尝试一些不同的事情,比如: var peoplewhownotseemadmaxfuryroad=[ { 姓名:“迈克”, 年龄:12岁, 性别:“男性” },{ 姓名:“玛德琳”, 年龄:80,, 性别:“女性” },{ 姓名:“谢丽尔”, 年龄:22,, 性别:“女性” },{ 姓名:“山姆”, 年龄:30,, 性别:“男性” },{ 姓名:“苏西”, 年龄:4岁,

我需要使用for循环遍历以下数组,并确定这些人的年龄是否在18岁以上,或者是否在18岁以下,并相应地记录一个字符串

我一直在尝试一些不同的事情,比如:

var peoplewhownotseemadmaxfuryroad=[
{
姓名:“迈克”,
年龄:12岁,
性别:“男性”
},{
姓名:“玛德琳”,
年龄:80,,
性别:“女性”
},{
姓名:“谢丽尔”,
年龄:22,,
性别:“女性”
},{
姓名:“山姆”,
年龄:30,,
性别:“男性”
},{
姓名:“苏西”,
年龄:4岁,
性别:“女性”
}
] 
对于(变量i=0;i}
无需双for循环,您可以通过单for循环实现这一点:

for(var i = 0; i < peopleWhoWantToSeeMadMaxFuryRoad.length; i++){
    if(peopleWhoWantToSeeMadMaxFuryRoad[i].age < 18) {
        // Do something for underaged people;
    } else {
       // Do something for people over 18
    }
}
for(变量i=0;i
也可以使用foreach循环:

peopleWhoWantToSeeMadMaxFuryRoad.forEach(function(person) {
    if(person.age < 18) {
        // Do something for underaged people;
    } else {
        // Do something for people over 18
    }
});
想要查看madMaxFuryRoad.forEach(函数(个人))的人{
如果(人年龄<18岁){
//为未成年人做点什么;
}否则{
//为18岁以上的人做点什么
}
});
对象没有有意义的
长度。如果要提取
age
属性,请显式执行,例如
obj.age

var peoplewhownotseemadmaxfuryroad=[{
姓名:“迈克”,
年龄:12岁,
性别:“男性”
}, {
姓名:“玛德琳”,
年龄:80,,
性别:“女性”
}, {
姓名:“谢丽尔”,
年龄:22,,
性别:“女性”
}, {
姓名:“山姆”,
年龄:30,,
性别:“男性”
}, {
姓名:“苏西”,
年龄:4岁,
性别:“女性”
}]
对于(变量i=0;i}
代码中的问题是您没有正确地访问值,
j==“number”和&j<18
这里您是在与索引而不是年龄进行比较
var data=[{姓名:“迈克”,年龄:12岁,性别:“男性”},{姓名:“玛德琳”,年龄:80岁,性别:“女性”},{姓名:“谢丽尔”,年龄:22岁,性别:“女性”},{姓名:“萨姆”,年龄:30岁,性别:“男性”},{姓名:“苏西”,年龄:4岁,性别:“女性”}]
data.forEach(e=>{
如果(如年龄>=18岁){
console.log(e.name+“you's 18+”)
}否则{
控制台日志(例如名称+“低于18”)
}

})
建议您先去掉所有18个或18个以上,然后循环剩余部分并打印console.log

const peopleWhoWantToSeeMadMaxFuryRoad = [..];

peopleWhoWantToSeeMadMaxFuryRoad.filter(person => person.age < 18)
    .forEach(person => console.log(`${person.name} is under 18`));
constpeoplewhowanttoseemadmaxfuryroad=[…];
想要查看madMaxFuryRoad.filter的人(person=>person.age<18)
.forEach(person=>console.log(`${person.name}小于18`);

使用
forEach

var peoplewhownotseemadmaxfuryroad=[
{
姓名:“迈克”,
年龄:12岁,
性别:“男性”
},{
姓名:“玛德琳”,
年龄:80,,
性别:“女性”
},{
姓名:“谢丽尔”,
年龄:22,,
性别:“女性”
},{
姓名:“山姆”,
年龄:30,,
性别:“男性”
},{
姓名:“苏西”,
年龄:4岁,
性别:“女性”
}
] 

peoplewhowwantSeemadMaxFuryRoad.forEach((e)=>e.age您可以将一个布尔值映射到每个人,按布尔值过滤,然后迭代剩余的数组以记录

var peopleWhoWantToSeeMadMaxFuryRoad = [
  {
    name: "Mike",
    age: 12,
    gender: "male"
  },{
    name: "Madeline",
    age: 80,
    gender: "female"
  },{
    name: "Cheryl",
    age: 22,
    gender: "female"
  },{
    name: "Sam",
    age: 30,
    gender: "male"
  },{
    name: "Suzy",
    age: 4,
    gender: "female"
  }
];

var under18 = peopleWhoWantToSeeMadMaxFuryRoad.map((peeps)={
    peeps["under18"] = (peeps.age < 18);
    return peeps;
}).filter((peeps)=>{
    return peeps.uner18;
}).forEach((peeps)=>{
    console.log(`${peeps.name} is under 18`);
})
var peoplewhownotseemadmaxfuryroad=[
{
姓名:“迈克”,
年龄:12岁,
性别:“男性”
},{
姓名:“玛德琳”,
年龄:80,,
性别:“女性”
},{
姓名:“谢丽尔”,
年龄:22,,
性别:“女性”
},{
姓名:“山姆”,
年龄:30,,
性别:“男性”
},{
姓名:“苏西”,
年龄:4岁,
性别:“女性”
}
];
18岁以下的变量=想看madmaxfuryroad.map((peeps)的人={
peeps[“18岁以下”]=(peeps.age<18岁);
返回peeps;
}).filter((peeps)=>{
返回peeps.uner18;
}).forEach((peeps)=>{
log(`${peeps.name}小于18`);
})

生成一个新数组,它不会改变原来的数组。@Titus谢谢你的澄清,你是对的,我确实将它放入了它自己的数组变量中,但我不知道为什么这么说。