delmin
delmin

Reputation: 2690

Get index of list of map from map

How do you get index of list of maps from a map. I tried to use indexOf which works but by the time the position of values are mixed up then it returns -1.

UPDATE: It actually doesn't work even in right order

  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

The best way would be to get index of list where item contains same id ... if you know what I mean... How to do it?

Upvotes: 1

Views: 1123

Answers (1)

finx
finx

Reputation: 1463

You can use indexWhere instead 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

Upvotes: 4

Related Questions