lastIndexOf method

  1. @override
int lastIndexOf(
  1. Object? element, [
  2. int? start
])
override

The last index of element in this list.

Searches the list backwards from index start to 0.

The first time an object o is encountered so that o == element, the index of o is returned.

final notes = <String>['do', 're', 'mi', 're'];
const startIndex = 2;
final index = notes.lastIndexOf('re', startIndex); // 1

If start is not provided, this method searches from the end of the list.

final notes = <String>['do', 're', 'mi', 're'];
final index = notes.lastIndexOf('re'); // 3

Returns -1 if element is not found.

final notes = <String>['do', 're', 'mi', 're'];
final index = notes.lastIndexOf('fa'); // -1

Implementation

@override
int lastIndexOf(Object? element, [int? start]) {
  if (element is! JObject) return -1;
  if (start == null || start >= this.length) start = this.length - 1;
  if (start == this.length - 1) {
    return _lastIndexOfId(
        this, const jintType(), [element.reference.pointer]);
  }
  final range = getRange(start, length);
  final res = _lastIndexOfId(
    range,
    const jintType(),
    [element],
  );
  range.release();
  return res;
}