(array: any[], index: number, value1: any, value2: any)
| 130 | * @param value2 Value to add to array. |
| 131 | */ |
| 132 | export function arrayInsert2(array: any[], index: number, value1: any, value2: any): void { |
| 133 | ngDevMode && assertLessThanOrEqual(index, array.length, "Can't insert past array end."); |
| 134 | let end = array.length; |
| 135 | if (end == index) { |
| 136 | // inserting at the end. |
| 137 | array.push(value1, value2); |
| 138 | } else if (end === 1) { |
| 139 | // corner case when we have less items in array than we have items to insert. |
| 140 | array.push(value2, array[0]); |
| 141 | array[0] = value1; |
| 142 | } else { |
| 143 | end--; |
| 144 | array.push(array[end - 1], array[end]); |
| 145 | while (end > index) { |
| 146 | const previousEnd = end - 2; |
| 147 | array[end] = array[previousEnd]; |
| 148 | end--; |
| 149 | } |
| 150 | array[index] = value1; |
| 151 | array[index + 1] = value2; |
| 152 | } |
| 153 | } |
| 154 | |
| 155 | /** |
| 156 | * Get an index of an `value` in a sorted `array`. |
no test coverage detected
searching dependent graphs…