Javascript 通过数组中的数组循环以确定值
我需要使用for循环遍历以下数组,并确定这些人的年龄是否在18岁以上,或者是否在18岁以下,并相应地记录一个字符串 我一直在尝试一些不同的事情,比如:Javascript 通过数组中的数组循环以确定值,javascript,arrays,loops,Javascript,Arrays,Loops,我需要使用for循环遍历以下数组,并确定这些人的年龄是否在18岁以上,或者是否在18岁以下,并相应地记录一个字符串 我一直在尝试一些不同的事情,比如: var peoplewhownotseemadmaxfuryroad=[ { 姓名:“迈克”, 年龄:12岁, 性别:“男性” },{ 姓名:“玛德琳”, 年龄:80,, 性别:“女性” },{ 姓名:“谢丽尔”, 年龄:22,, 性别:“女性” },{ 姓名:“山姆”, 年龄:30,, 性别:“男性” },{ 姓名:“苏西”, 年龄:4岁,
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谢谢你的澄清,你是对的,我确实将它放入了它自己的数组变量中,但我不知道为什么这么说。