将所有键值从数组推送到新数组中,只要不同键的值(在同一对象中)满足特定条件



描述我正在寻找的解决方案的最佳方式是用一种优雅的方式为此生成一个函数:

function getNamesOfLegalDrivers(people) {

}
const examplePeopleArray = [
{ name: 'John', age: 14 },
{ name: 'Joey', age: 16 },
{ name: 'Jane', age: 18 }
];
console.log(getNamesOfLegalDrivers(examplePeopleArray), '<-- should print all names over 16, and thus be ["Joey", "Jane"]');

您正在Array原型上寻找函数,如filtermap

Javascript

function getNamesOfLegalDrivers(people) {
return people
.filter(function(person) { return person.age >= 16; })
.map(function(person) { return person.name; });
}

MDN的文档

  • Array.prototype.filterfilter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素
  • Array.prototype.mapmap()方法创建一个新数组,其结果是对调用数组中的每个元素调用所提供的函数
function getNamesOfLegalDrivers(people) {
return people
.filter(person=>person.age >= 16) //returns array of all person objects over 16
.map(person=>person.name)//returns name of all people in the filtered array
}

您可以这样做:

function getNamesOfLegalDrivers(people) 
{
var legalDrivers = [];
for (var i in people) {
if(people[i].age >= 16){
legalDrivers.push(people[i].name);
}
}
return legalDrivers;
}
const examplePeopleArray = [
{ name: 'John', age: 14 },
{ name: 'Joey', age: 16 },
{ name: 'Jane', age: 18 }
];
console.log(getNamesOfLegalDrivers(examplePeopleArray));

最新更新