Dart Map increment the value of a key

Issue

I’m currently working with a Map in which the values are of type integer but I need to update the value of a key every time an action takes place. Example: if the Map is { “key1”: 1 } after the actions takes place it should be {“key1”:2} and so on. Here’s my code:

void addToMap(Product product) {
    if (_order.containsKey(product.name)) {
      _order.update(product.name, (int) => _order[product.name]+1);
    }
    _order[product.name] = 1;
  }

Where _order is the Map

Solution

Add return or the map will always get overridden by _order[product.name] = 1;

void addToMap(Product product) {
  if (_order.containsKey(product.name)) {
    _order.update(product.name, (int) => _order[product.name]+1);
    return;
  }
  _order[product.name] = 1;
}

Answered By – Michael Yuwono

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published