30秒学会 Dart 片段 · 2018年6月21日

30秒学会 Dart 片段 – compact

Removes falsy values from a list.

Use Iterable.removeWhere() in combination with the cascade operator (..) to filter out falsy values (false, null).

代码实现

List<T> compact<T>(List<T> lst) {
  return lst..removeWhere((v) => [null, false].contains(v));
}

使用样例

compact([0, 1, false, 2, 3, 'a', null, 'b']); // [0, 1, 2, 3, 'a', 'b']