Dart 的 List 的“some”方法叫啥?检查至少一个元素是不是通过测试的方法

Posted

技术标签:

【中文标题】Dart 的 List 的“some”方法叫啥?检查至少一个元素是不是通过测试的方法【英文标题】:What Dart's List's "some" method is called? Method checking if at least one element passes a testDart 的 List 的“some”方法叫什么?检查至少一个元素是否通过测试的方法 【发布时间】:2020-05-19 10:57:45 【问题描述】:

javascript 数组上,有 some 方法:

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

我认为 Dart 列表中也一定有类似的方法,但我似乎无法在 Internet 或 List docs 的任何地方找到它。

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

【问题讨论】:

【参考方案1】:

嗯!问题在于 JavaScript 的 some 方法的等效项是 Iterable class 上的方法,而不是 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);

【讨论】:

以上是关于Dart 的 List 的“some”方法叫啥?检查至少一个元素是不是通过测试的方法的主要内容,如果未能解决你的问题,请参考以下文章

Dart学习--Dart之数组(List)的相关方法总结

手臂中间可以曲折的部位叫啥?

Dart 中的 List.shuffle()?

Dart基础: List常用属性及方法;

ABAP中用ALV做报表,添加删除修改的方法在哪个类里面,方法的名字叫啥?

Dart 语言扩展方法