Итерация по массиву и суммирование, если выполнены условия - PullRequest
0 голосов
/ 08 мая 2018

Мне трудно понять, как наметить решение этой проблемы ... и идеи?

Проверьте, является ли возраст каждого человека массивом. Если это так, суммируйте каждое числовое значение и обновите возраст, чтобы он стал этим значением. Затем составьте список людей старше 25 лет на основе этого обновленного номера.

const ListOfPeople = [
{
  name: 'Mia',
  age: [10, 5, 5]
},
{
  name: 'Steve',
  age: 30
},
{
  name: 'Emma',
  age: [2, 12, 16, 10]
}
];

Я начал с этого:

let filterPeople = ListOfPeople => ListOfPeople.map(person =>
person[0].age //stuck
);

1 Ответ

0 голосов
/ 08 мая 2018

Попробуйте что-то вроде этого:

const over30 = ListOfPeople.map(p => {
    if (Array.isArray(p.age)) {
        // Copy the object so we don't mutate the original
        p = Object.assign({}, p);
        p.age = p.age.reduce((sum, v) => sum + v, 0);
    }
    return p;
}).filter(p => p.age >= 30);
console.log(over30);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...