Почему функция не всегда возвращает null?
Возник вопрос при анализе кода.
Почему функция binarySearch не всегда возвращает null, несмотря на то, в конце функции прописан return null. Как на это влияет return mid в массиве?
Спасибо!
const binarySearch = (list, item) => {
let low = 0;
let high = list.length - 1;
while (low <= high) {
const mid = Math.floor((low + high) / 2);
const guess = list[mid];
if (guess === item) {
return mid;
}
if (guess > item) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return null;
};
const myList = [1, 3, 5, 7, 9];
console.log(binarySearch(myList, 3)); // 1
console.log(binarySearch(myList, -1)); // null
Ответы (1 шт):
Автор решения: Pavel Grishaev
→ Ссылка
return mid в цикле останавливает цикл, останавливает функцию, и возвращает значение. До последнего return null в таком случае дело просто не доходит. Таким образом можно прервать любую вложенность циклов и функцию, и из любой глубины возвратить значение.