removeDeeply function

dynamic removeDeeply(
  1. List keyPath,
  2. dynamic data, [
  3. int i = 0
])

remove element at keyPath in data

Implementation

dynamic removeDeeply(List keyPath, dynamic data, [int i = 0]) {
  if (data is Map) {
    if (!data.containsKey(keyPath[i])) {
      return data;
    } else {
      if (keyPath.length == i + 1) {
        data.remove(keyPath[i]);
        return data;
      }
    }
  } else {
    return data;
  }
  data[keyPath[i]] = removeDeeply(keyPath, data[keyPath[i]], ++i);

  return data;
}