void removeWhere(String path, bool test(element))

Removes all objects from the list at path that satisfy test. TODO(jakemac): Optimize by removing whole ranges?

Source

void removeWhere(String path, bool test(element)) {
  var list = get(path);
  var indexesToRemove = [];
  for (int i = 0; i < list.length; i++) {
    if (test(list[i])) indexesToRemove.add(i);
  }
  for (int index in indexesToRemove.reversed) {
    removeAt(path, index);
  }
}