I have a map
Map<String, List> map1 = {a: [1,2,3,4], b: [5,6,7,8], c: [9,10,11]};
I know one of the values of one of the lists - 1..11. How can I get the key of a map entity where this value belongs to - a, b, c?
CodePudding user response:
Try this, where search
is the value you're trying to find in the array.
Note that firstWhere
can give you an error if the value cannot be found anywhere.
void main() {
final data = {
'a': [1, 2, 3, 4],
'b': [5, 6, 7, 8],
'c': [9, 10, 11]
};
final search = 4;
final selected = data.keys.firstWhere((key) {
return data[key]!.contains(search);
});
print(selected); // a
}
CodePudding user response:
I found a solution
int valueToLookFor = 5;
String keyName = map1.keys.firstWhere((key) => map1[key]!.contains(valueToLookFor));