有人能帮帮我吗?我不知道为什么不工作
main() {
var students = [
{'name': 'Mateus', 'grade': 9.9},
{'name': 'Pedro', 'grade': 9.3},
{'name': 'Paulo', 'grade': 8.7},
{'name': 'João', 'grade': 8.1},
{'name': 'Tiago', 'grade': 7.6},
{'name': 'Bartolomeu', 'grade': 6.8},
];
Function(Map) onlyName = (student) => students['names'];
var names = students.map(onlyName);
print(names);
}
3条答案
按热度按时间68de4m5k1#
出现此错误是因为students是Map类型的数组。在onlyNameMap函数中,您尝试获取位于索引“name”处的元素,但该元素无效。students[0]将有效。
但是你的逻辑还是错的。据我所知,你试图从你的Map上得到所有的名字。
你想要遍历元素,这就是为什么你定义了这个函数。参数student包含了当前的student。因为这是一个Map,你可以简单地调用student ['name'],这样它就会返回名字。
6yt4nkrj2#
如果我没理解错的话你需要用
去查名字。
xa9qqrwz3#
因为你的名字模型中的分数是字符串,但是你插入了整数值。
您可以在""中插入值。
还有,你把名字定义错了。
必须在函数中将"names"更改为"name"
应为:
Function(Map) onlyName = (student) => students['name'];