从地图获取地图列表索引

时间:2020-04-18 18:01:32

标签: flutter dart

如何从地图中获取地图列表索引。我尝试使用有效的indexOf,但是当值的位置混合起来时,它返回-1。

更新:即使按正确的顺序,它实际上也不起作用

  List<Map<String, dynamic>> list = [{'id':1, 'name':'a'}, {'id':2, 'name':'b'}];
  Map<String, dynamic> item = {'name':'a','id':1}; //<- position name and id are in different places

  print(list.indexOf(item)); // so it return -1

最好的方法是获取包含相同ID的列表的索引...如果您知道我的意思...该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用indexWhere代替indexOf

Map<String, dynamic> item = {'name':'a','id':1};
print(list.indexWhere((i) => i['id'] == item['id'])); // prints 0
Map<String, dynamic> item = {'name':'b','id':2};
print(list.indexWhere((i) => i['id'] == item['id'])); // prints 1