首页 > 解决方案 > 如果条件满足,则遍历数组并求和

问题描述

我无法弄清楚如何为这个问题制定解决方案......和想法?

检查每个人的年龄是否是一个数组。如果是,则将每个数值相加,并将年龄更新为该值。然后,根据这个更新的数字列出仅 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
);

标签: javascriptecmascript-6

解决方案


尝试这样的事情:

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);

推荐阅读