ПОмощь в написании функции
Помогите наприсать функцию. Стоит задача написать функцию, которая возвращает массив имен людей старше 18 лет и их любимый фрукт - яблоко. В данной функции нужно использовать уже написанные функции map и filter.
getAdultAppleLovers (data) // возвращает [‘Stein’]
let data = [{
"_id": "5b5e3168c6bf40f2c1235cd6",
"index": 0,
"age": 39,
"eyeColor": "green",
"name": "Stein",
"favoriteFruit": "apple"
},
{
"_id": "5b5e3168e328c0d72e4f27d8",
"index": 1,
"age": 38,
"eyeColor": "blue",
"name": "Cortez",
"favoriteFruit": "strawberry"
},
{
"_id": "5b5e3168cc79132b631c666a",
"index": 2,
"age": 2,
"eyeColor": "blue",
"name": "Suzette",
"favoriteFruit": "apple"
},
{
"_id": "5b5e31682093adcc6cd0dde5",
"index": 3,
"age": 17,
"eyeColor": "green",
"name": "Weiss",
"favoriteFruit": "banana"
}
];
function forEach(arr, func) {
for (let el of arr) {
func(el);
}
}
function map(arr, func) {
let result = [];
forEach(arr, el => {
result.push(func(el));
})
return result;
};
function filter(arr, func) {
let result = [];
forEach(arr, el => {
if (func(el) === true) {
result.push(el);
}
})
return result;
}
function getAdultAppleLovers(arr) {
let result = [];
filter(arr, function(el) {
return el['age'] >= 18 && el['favoriteFruit'] === 'apple'
});
map(filter(), );
return result;
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
let data = [{
"_id": "5b5e3168c6bf40f2c1235cd6",
"index": 0,
"age": 39,
"eyeColor": "green",
"name": "Stein",
"favoriteFruit": "apple"
},
{
"_id": "5b5e3168e328c0d72e4f27d8",
"index": 1,
"age": 38,
"eyeColor": "blue",
"name": "Cortez",
"favoriteFruit": "strawberry"
},
{
"_id": "5b5e3168cc79132b631c666a",
"index": 2,
"age": 2,
"eyeColor": "blue",
"name": "Suzette",
"favoriteFruit": "apple"
},
{
"_id": "5b5e31682093adcc6cd0dde5",
"index": 3,
"age": 17,
"eyeColor": "green",
"name": "Weiss",
"favoriteFruit": "banana"
}
];
function forEach(arr, func) {
for (let el of arr) {
func(el);
}
}
function map(arr, func) {
let result = [];
forEach(arr, el => {
result.push(func(el));
})
return result;
};
function filter(arr, func) {
let result = [];
forEach(arr, el => {
if (func(el) === true) {
result.push(el);
}
})
return result;
}
function getAdultAppleLovers(arr) {
return map(filter(arr, el => el.age >= 18 && el.favoriteFruit == 'apple'), el => el.name);
}
console.log(getAdultAppleLovers(data));