Flutter/Dart: 根据索引或掩码从列表中删除元素
Flutter/Dart: Remove Elements from List based on index or mask
假设我有两个列表 values
和 mask
:
List<int> values = [2,8,3,5,1];
List<bool> mask = [true, false, true, true, false];
// desired outcome: [2,3,5]
根据掩码值过滤值的 shortest/best/most 优雅方法是什么?
例如在 JavaScript 我可以这样做:
values.filter((_, i) => mask[i]);
// yields: [2,3,5]
Dart 中有类似的东西吗?
我认为这会奏效。如果有人有其他想法,我将不胜感激:)
List.generate(values.length, (i) => i).where((i) => mask[i]).map((i) => values[i]).toList();
我会用asMap来解决这个问题,键是索引,值是原始值。
values.asMap().entries.where((e) => mask[e.key]).map((e) => e.value).toList(); ```
假设我有两个列表 values
和 mask
:
List<int> values = [2,8,3,5,1];
List<bool> mask = [true, false, true, true, false];
// desired outcome: [2,3,5]
根据掩码值过滤值的 shortest/best/most 优雅方法是什么? 例如在 JavaScript 我可以这样做:
values.filter((_, i) => mask[i]);
// yields: [2,3,5]
Dart 中有类似的东西吗?
我认为这会奏效。如果有人有其他想法,我将不胜感激:)
List.generate(values.length, (i) => i).where((i) => mask[i]).map((i) => values[i]).toList();
我会用asMap来解决这个问题,键是索引,值是原始值。
values.asMap().entries.where((e) => mask[e.key]).map((e) => e.value).toList(); ```