У меня есть функция, которая регистрирует количество вызовов функций, которые требуется для того, чтобы функция находила целевой номер в массиве простых чисел. В настоящее время я использую счетчик, объявленный в глобальной области. Как поместить этот счетчик в область функций как статическую переменную, чтобы она не менялась при вызове функции каждый раз?Заменить глобальную переменную статической переменной в рекурсивной функции
let primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
let counter = 1
function findPrime(arr, target){
let guess = arr[Math.floor(arr.length/2)]
if (guess > target){
arr = arr.splice(0, arr.length/2)
counter ++
findPrime(arr,target)
}else if (guess < target){
arr = arr.slice(arr.length/2)
counter ++ || 1
findPrime(arr,target)
}else{
console.log('guesses taken: ' + counter)
console.log('target is: ' + guess)
}
}
findPrime(primes, 2)
Сторона примечания: '|| 1' часть вашего 'counter ++ || Линия не делает ничего вообще. –