对象数组,检查每个对象的年龄,然后返回符合该年龄的所有对象的名称

时间:2019-04-14 03:23:07

标签: javascript arrays object

我在考试中遇到了这个问题,但我弄错了,我一直在尝试通过MDN Web文档进行最佳阅读,但是学习JavaScript仅一周的时间,我不知道自己在寻找什么。 我从考试中可以回想起,这个虚构的状态只有15岁以上的孩子可以成为保姆。我使用了“ .find()”,我只能产生一个人,它给了我整个对象,他们只想要这个名字。给了一天半的时间自己找到答案,但我迷路了。帮助!

如果您也有链接,以便我可以阅读更多有关此内容,这将对您有所帮助,因为其他学生说他们有相似的年龄,他们要求他们平均年龄。数组和对象让我已经想把我的头撞在墙上。

function legalBabysitter(sitters){
};

/*Do not modify anything below this line*/

const babysitterArray = [
    {name: 'Peter', age: 13},
    {name: 'Paul', age: 15},
    {name: 'Mary', age: 17}
];

console.log(legalBabysitter(babysitterArray)); // should produce [Paul, Mary]

5 个答案:

答案 0 :(得分:0)

您可以使用reduce

这里的想法是

  • 遍历数组
  • 检查年龄是否大于或等于15,而不是在op中添加姓名
  • 否则保持原样
  • 从函数返回操作

function legalBabysitter(sitters){
  return sitters.reduce((op,inp)=>{
    if(inp.age >= 15){
      op.push(inp.name)
    }
    return op
  },[])
};

/*Do not modify anything below this line*/

const babysitterArray = [
    {name: 'Peter', age: 13},
    {name: 'Paul', age: 15},
    {name: 'Mary', age: 17}
];

console.log(legalBabysitter(babysitterArray)); //

答案 1 :(得分:0)

您可以使用拟合器并像这样return sitters.filter(c=>c.age >= 15).map(c=>c.name);

进行映射

function legalBabysitter(sitters){
  return sitters.filter(c=>c.age >= 15).map(c=>c.name);
};

/*Do not modify anything below this line*/

const babysitterArray = [
    {name: 'Peter', age: 13},
    {name: 'Paul', age: 15},
    {name: 'Mary', age: 17}
];

console.log(legalBabysitter(babysitterArray)); // should produce [Paul, Mary]

答案 2 :(得分:0)

如果只需要考试,可以使用for循环,这很清楚。

function legalBabysitter(sitters){
  var result = [];
  for(var i =0; i < sitters.length; i ++){
     if(sitters[i].age >= 15){
        result.push(sitters[i].name);
     }
  }
  return result;
};

function legalBabysitter(sitters){
  var result = [];
  for(var i =0; i < sitters.length; i ++){
     if(sitters[i].age >= 15){
        result.push(sitters[i].name);
     }
  }
  return result;
};

/*Do not modify anything below this line*/

const babysitterArray = [
    {name: 'Peter', age: 13},
    {name: 'Paul', age: 15},
    {name: 'Mary', age: 17}
];

console.log(legalBabysitter(babysitterArray)); // should produce [Paul, Mary]

答案 3 :(得分:0)

const babysitterArray = [
    {name: 'Peter', age: 13},
    {name: 'Paul', age: 15},
    {name: 'Mary', age: 17}
];

function legalBabysitter(sitters){
  return sitters.filter(_ => _.age > 14).map(_ => _.name)
};

console.log(legalBabysitter(babysitterArray))

答案 4 :(得分:0)

如果您不知道.filer和.reduce,则可以通过.forEach做到。

const babysitterArray = [
    {name: 'Peter', age: 13},
    {name: 'Paul', age: 15},
    {name: 'Mary', age: 17}
];

function legalBabysitter(sitters){
  let target = [];
  
  sitters.forEach(_ => {
    if (_.age > 14) target.push(_.name)
  })
  
  return target;
  
};

console.log(legalBabysitter(babysitterArray))