sortedIndex
优质
小牛编辑
145浏览
2023-12-01
Performs a binary search of this sequence, returning the lowest index where the given value is either found, or where it belongs (if it is not already in the sequence).
This method assumes the sequence is in sorted order and will fail otherwise.
Signature
Sequence.sortedIndex = function(value) { /*...*/ }
Sequence.sortedIndex = function sortedIndex(value) { var indexed = this.getIndex(), lower = 0, upper = indexed.length(), i; while (lower < upper) { i = (lower + upper) >>> 1; if (compare(indexed.get(i), value) === -1) { lower = i + 1; } else { upper = i; } } return lower; }
Name | Type(s) | Description |
---|---|---|
value | * | The element to search for in the sequence. |
returns | number | An index within this sequence where the given value is located, or where it belongs in sorted order. |
Examples
Lazy([1, 3, 6, 9]).sortedIndex(3) // => 1 Lazy([1, 3, 6, 9]).sortedIndex(7) // => 3 Lazy([5, 10, 15, 20]).filter(isEven).sortedIndex(10) // => 0 Lazy([5, 10, 15, 20]).filter(isEven).sortedIndex(12) // => 1