飞镖列表的"some"方法叫什么?方法检查是否至少有一个元素通过测试



在 JavaScript 数组上,有some方法:

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

我认为 Dart 列表中也一定有类似的方法,但我似乎在互联网或List文档中找不到它。

我习惯了 Dart 对某些方法有不同的名称,所以我总是花 5 分钟,直到我记得 JavaScript 的find叫做where,等等。但是,我似乎找不到some的等价物。

呵呵!问题在于,JavaScript 的some方法的等效项是Iterable类上的方法,而不是List上的方法。不过,List类实现了Iterable,所以我本可以更早地找到它,但我想我在所有这些方法描述中迷失了方向。

Dart 等价于some方法称为:any

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

检查此可迭代对象的任何元素是否满足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);

最新更新