Dart 标准库中是否有一个函数可以让我检查列表是否已排序?
当然,我可以轻松地实现我的(以不同的方式),但是由于这可能是经常需要的操作,因此将这样的函数作为 API 的一部分List或作为某些中的顶级函数或算法可能会很有用。其他图书馆。
没有方法可以直接检查是否已排序,而且它也不容易从Iterable.fold或构建Iterable.reduce。这不是以前请求过的功能,因此不太可能被放入平台库中。package:collection将其放入像或 这样的包中可能是值得的package:quiver。
这是一个您可以使用的函数:
bool isSorted<T>(List<T> list, [int Function(T, T)? compare]) {
if (list.length < 2) return true;
compare ??= (T a, T b) => (a as Comparable<T>).compareTo(b);
T prev = list.first;
for (var i = 1; i < list.length; i++) {
T next = list[i];
if (compare(prev, next) > 0) return false;
prev = next;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |