Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 从映射中获取映射列表的索引_Flutter_Dart - Fatal编程技术网

Flutter 从映射中获取映射列表的索引

Flutter 从映射中获取映射列表的索引,flutter,dart,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

如何从地图中获取地图列表的索引。我尝试使用
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
List List=[{'id':1,'name':'a'},{'id':2,'name':'b'}];

映射项={'name':'a','id':1}// 您可以使用
indexWhere
代替
indexOf

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

Wow。。。我有点错过了
索引where
。。。非常感谢你。。你救了我一天:)
Map<String, dynamic> item = {'name':'b','id':2};
print(list.indexWhere((i) => i['id'] == item['id'])); // prints 1