Dart 的 List 的“some”方法叫什么?检查是否至少有一个元素通过测试的方法

Vin*_*rga 3 iterable list dart flutter

在 JavaScript 数组上,有以下some方法:

some()方法测试数组中是否至少有一个元素通过了提供的函数实现的测试。它返回一个布尔值。

我认为 Dart 列表上也必须有类似的方法,但我似乎无法在互联网或文档中的任何地方找到它List

我习惯了 Dart 的一些方法有不同的名称,所以我总是花大约 5 分钟,直到我记得 JavaScript 的find被调用where,等等。但是,我似乎找不到some的等效项。

Vin*_*rga 5

哼!问题是 JavaScriptsome方法的等价物是Iterable上的方法,而不是List. 本List类实现了Iterable,不过,这样我就可以早点发现它,但我想我是在所有这些方法描述丢失。

Dart 的等价some方法称为any

Iterable<E> bool any(bool test(E element))

检查此迭代的任何元素是否满足 test

按迭代顺序检查每个元素,如果其中任何一个使 test 返回 true,则返回 true,否则返回 false。

用法示例:

// The list in which we want to check if there is an item that passes a certain test.
List<String> haystack = [
  // It contains some elements...
];
// Just to be explicit in this example, you don't really need it
typedef TestFunc = bool Function(String);
// The test. Just some function that takes an element and returns boolean.
TestFunc isNeedle = (String v) => v.toLowerCase().contains('needle');

bool gotNeedle = haystack.any(isNeedle);
Run Code Online (Sandbox Code Playgroud)