gpt4 book ai didi

javascript - 对对象数组进行过滤和映射

转载 作者:行者123 更新时间:2023-11-28 17:51:42 25 4
gpt4 key购买 nike

    let team = [
{'name' : 'Bob Jones', 'Info': {'Height': '6.4', 'Weight': 170}, 'age': 20},
{'name' : 'John Anderson', 'Info': {'Height': '5.4', 'Weight': 120}, 'age': 23},
{'name' : 'Tim Hamburger', 'Info': {'Height': '6.1', 'Weight': 180}, 'age': 25},
{'name' : 'Tom Hamburger', 'Info': {'Height': '6.6', 'Weight': 220}, 'age': 30},
{'name' : 'Jack Johnson', 'Info': {'Height': '6.0', 'Weight': 190}, 'age': 41},
{'name' : 'Tommy Tubbs', 'Info': {'Height': '6.1', 'Weight': 180}, 'age': 50},
]

let age = (team) => {
let earlyTwenties = [];
team.filter((members) => {
if(members.age >= 20 && members.age <= 25) {
earlyTwenties.push(members.name)
}
});
return earlyTwenties;
}

console.log(age(team));//[ 'Bob Jones', 'John Anderson', 'Tim Hamburger' ]

我有一个功能可以过滤所有二十岁出头的团队成员。我需要仅返回团队成员的名字而不是他们的全名。

我知道我可以使用for循环并分割每个名称,然后使用另一个for循环返回给我所有名字的每个其他值,但我正在尝试编写更好的代码使用HOF。

关于如何使用map来分割数组并在同一函数中仅返回名字有什么建议吗?

最佳答案

您可以使用Array#filter首先获取满足条件的每个玩家的年龄,然后使用Array#map使用字符串分割获取他们的姓名。

let team = [
{'name' : 'Bob Jones', 'Info': {'Height': '6.4', 'Weight': 170}, 'age': 20},
{'name' : 'John Anderson', 'Info': {'Height': '5.4', 'Weight': 120}, 'age': 23},
{'name' : 'Tim Hamburger', 'Info': {'Height': '6.1', 'Weight': 180}, 'age': 25},
{'name' : 'Tom Hamburger', 'Info': {'Height': '6.6', 'Weight': 220}, 'age': 30},
{'name' : 'Jack Johnson', 'Info': {'Height': '6.0', 'Weight': 190}, 'age': 41},
{'name' : 'Tommy Tubbs', 'Info': {'Height': '6.1', 'Weight': 180}, 'age': 50},
];

let res = team.filter(v => v.age > 19 && v.age < 26)
.map(v => v.name.split(" ")[0]);

console.log(res);

关于javascript - 对对象数组进行过滤和映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45401825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com