Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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[初学者]中的条件编写for…in循环时遇到困难_Javascript_Arrays_Object_For Loop - Fatal编程技术网

我在基于JavaScript[初学者]中的条件编写for…in循环时遇到困难

我在基于JavaScript[初学者]中的条件编写for…in循环时遇到困难,javascript,arrays,object,for-loop,Javascript,Arrays,Object,For Loop,我试图修改函数以返回16岁或以上的人数。我知道我需要一个for…in循环。就我所知。请帮忙 function countLegalDrivers(people){ } const examplePeopleArray = [ { name: 'John', age: 15}, { name: 'Jane', age: 16}, { name: 'Jack', age: 17} ]; console.log(countLegalDrivers(examplePeopleArray

我试图修改函数以返回16岁或以上的人数。我知道我需要一个for…in循环。就我所知。请帮忙

function countLegalDrivers(people){

}

const examplePeopleArray = [
  { name: 'John', age: 15},
  { name: 'Jane', age: 16},
  { name: 'Jack', age: 17}
];

console.log(countLegalDrivers(examplePeopleArray), '<-- should be 2');
函数countLegalDrivers(人){
}
常量示例PeopleArray=[
{姓名:'John',年龄:15},
{姓名:'Jane',年龄:16},
{姓名:“杰克”,年龄:17}
];
log(countLegalDrivers(examplePeopleArray)),您可以使用过滤器,也可以不使用过滤器

//带过滤器
功能countLegalDrivers(人){
返回people.filter(p=>p.age>=16);
}
//带普通for循环
/*功能countLegalDrivers(人){
var计数=0;
对于(变量i=0;i=16){
计数++;
}
}
返回计数;
}
*/
常量示例PeopleArray=[
{姓名:“约翰”,年龄:15},
{姓名:“简”,年龄:16},
{姓名:“杰克”,年龄:17}
];
console.log(countLegalDrivers(例如peoplearray));
函数countLegalDrivers(people){
返回人物。减少((上一个,当前)=>上一个+(当前年龄>=16?1:0),0);
}
常量示例PeopleArray=[
{姓名:'John',年龄:15},
{姓名:'Jane',年龄:16},
{姓名:“杰克”,年龄:17}
];

log(countLegalDrivers(例如peopleArray),”正如所指出的,这听起来像是一个家庭作业问题,所以我不会在这里给出完整的答案。但是,我想公平地告诉你,这是一个错误的工具。
for…in
用于迭代对象中的键和值对,根据,它不应该用于迭代对象中的键和值对数组中的元素(这是您在这里看到的)。相反,一个简单的
for
循环(或者,其他注释中提到的一种迭代方法)就足够了。

在数组中使用.filter()。这似乎是一个家庭作业问题,因此我无法回答,因为这会对您造成伤害。您将使用for(人中的p)在该循环的内部,您将使用一个简单的if语句来检查年龄是否是比较操作符,以验证它们是否能够驱动。不要忘记返回值。<>代码> <…>代码>是在数组中的最后一件事。请考虑< <代码> > <代码> >筛选器< /代码>。
  function countLegalDrivers(people){
  return people.reduce((prev,cur)=>prev+(cur.age>=16?1:0),0);
}

const examplePeopleArray = [
  { name: 'John', age: 15},
  { name: 'Jane', age: 16},
  { name: 'Jack', age: 17}
];

console.log(countLegalDrivers(examplePeopleArray), '<-- should be 2');