javascript - 如果条件满足,则遍历数组并求和
问题描述
我无法弄清楚如何为这个问题制定解决方案......和想法?
检查每个人的年龄是否是一个数组。如果是,则将每个数值相加,并将年龄更新为该值。然后,根据这个更新的数字列出仅 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
);
解决方案
尝试这样的事情:
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);
推荐阅读
- ruby - ruby gsub 和 preg_replace 中的排序替换
- javascript - 如何在不进行任何 API 调用的情况下获取浏览器 IP 地址和访问我网站的访问者国家/地区
- android - 在 Android Studio 版本 3.1.3 上测量我的应用性能
- ibm-cloud - 为什么我在 Watson IoT Platform 上的历史数据库服务不断变得“未配置”?
- chef-infra - chef-server-ctl 重新配置失败
- java - nexus/maven 部署到 nexus 服务器的旧 IP
- ios - 收到推送通知时运行代码。即使应用程序在后台
- git - git 存储可选功能的最佳方法
- json - SQL Server - OPENJSON 解析 JSON 文本
- google-maps-api-3 - 如何访问使用 loadGeoJson() 加载的 Google Map API v3 功能