描述我正在寻找的解决方案的最佳方式是用一种优雅的方式为此生成一个函数:
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
原型上寻找函数,如filter
和map
。
Javascript
function getNamesOfLegalDrivers(people) {
return people
.filter(function(person) { return person.age >= 16; })
.map(function(person) { return person.name; });
}
MDN的文档
- Array.prototype.filter
filter()
方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素 - Array.prototype.map
map()
方法创建一个新数组,其结果是对调用数组中的每个元素调用所提供的函数
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));