gpt4 book ai didi

arrays - 使用map运算符将数组转换为新类的属性

转载 作者:行者123 更新时间:2023-12-03 04:25:48 24 4
gpt4 key购买 nike

我有两个数组/列表:

用户= [object1,object2,object3];所有相同的类型:类用户

团队= [object1,object2,object3];所有相同的类型:类组

我想创建一个新数组,动态包含类型为SupportTeams的对象,该对象具有类型为User和Team的属性。

我想我应该使用map运算符将数组转换为新数组。

像这样

List<SupportTeams> combiner(List<User> users, List<Team> teams) {
return users.map((user) {
teams.map((team) {
SupportTeams(user,team);
});
}).toList();
}

最佳答案

你快到了。首先,您需要从map内的调用返回:

List<SupportTeams> combiner(List<User> users, List<Team> teams) {
return users.map((user) {
return teams.map((team) {
return SupportTeams(user,team);
});
}).toList();
}

但是,这仍然无法100%正常运行,因为您将拥有一个列表列表。您需要使用 expand展平结果:

List<SupportTeams> combiner(List<User> users, List<Team> teams) {
return users.map((user) {
return teams.map((team) {
return SupportTeams(user,team);
});
}).expand((i) => i).toList();
}

如果您想更加简洁,可以使用 =>表示法代替return:

List<SupportTeams> combiner(List<User> users, List<Team> teams) =>
users.map((user) =>
teams.map((team) =>
SupportTeams(user,team))).expand((i) => i).toList();

最后,正如@lrn在注释中指出的那样,您可以使用控制流集合来更干净地执行此操作:

List<SupportTeams> combiner(List<User> users, List<Team> teams) => [
for (var user in users)
for (var team in teams)
SupportTeams(user, team)
];

关于arrays - 使用map运算符将数组转换为新类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59881821/

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