如何从地图中获取地图列表索引。我尝试使用有效的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的列表的索引...如果您知道我的意思...该怎么做?
答案 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