<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [rc-js-util](./rc-js-util.md) &gt; [arrayBinaryFindInsertionIndex](./rc-js-util.arraybinaryfindinsertionindex.md)

## arrayBinaryFindInsertionIndex() function

Performs a bisection search of an 'indexable' object such that if the value were inserted, it would remain in order.

**Signature:**

```typescript
export declare function arrayBinaryFindInsertionIndex<T>(indexable: T, comparisonValueToSearchFor: number, getComparisonValueAtIndex: TGetComparisonValueAtIndex<T>, length: number, start?: number): number;
```

## Parameters

<table><thead><tr><th>

Parameter


</th><th>

Type


</th><th>

Description


</th></tr></thead>
<tbody><tr><td>

indexable


</td><td>

T


</td><td>

The thing to be searched. This must be sorted ascending.


</td></tr>
<tr><td>

comparisonValueToSearchFor


</td><td>

number


</td><td>

The comparison value to find the insertion index for.


</td></tr>
<tr><td>

getComparisonValueAtIndex


</td><td>

[TGetComparisonValueAtIndex](./rc-js-util.tgetcomparisonvalueatindex.md)<!-- -->&lt;T&gt;


</td><td>

A function that provides the value for comparison at a given index.


</td></tr>
<tr><td>

length


</td><td>

number


</td><td>

The number of elements in the structure `indexable` to search.


</td></tr>
<tr><td>

start


</td><td>

number


</td><td>

_(Optional)_ The start index.


</td></tr>
</tbody></table>
**Returns:**

number

The index to insert the element at, the highest value is the length of the array.

## Remarks

The `indexable` parameter must be sorted ascending. Where there are multiple equal values the lowest index will be returned.

## Example


```typescript
// searching for the number 2.5 with start index 1 & length 2
 const index = arrayBinaryFindInsertionIndex([1, 2, 3, 4], 2.5, (a, i) => a[i], 2, 1);
 // index is 2
```

