lastIndexWhere 方法
override
列表中满足提供的 test
条件的最后一个索引。
从索引 start
到 0 搜索列表。当遇到第一个对象 o
,使得 test(o)
为真时,返回 o
的索引。如果省略 start
,则默认为列表的 length。
final notes = <String>['do', 're', 'mi', 're'];
final first = notes.lastIndexWhere((note) => note.startsWith('r')); // 3
final second = notes.lastIndexWhere((note) => note.startsWith('r'),
2); // 1
如果未找到 element
,则返回 -1。
final notes = <String>['do', 're', 'mi', 're'];
final index = notes.lastIndexWhere((note) => note.startsWith('k'));
print(index); // -1
实现
int lastIndexWhere(bool test(E element), [int? start]) {
if (start == null || start >= this.length) start = this.length - 1;
for (int i = start; i >= 0; i--) {
if (test(this[i])) return i;
}
return -1;
}