ПОмощь в написании функции

Помогите наприсать функцию. Стоит задача написать функцию, которая возвращает массив имен людей старше 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));

→ Ссылка