Но почему-то в консоли выводится undefined
                  
                  
                  Хотя если в браузере по коду построчно пройтись, все работает верно. Почему так?
                  
                  
                  
                  
                  
                  function fastBinarySearchSorted (arr, num) {
                  
                  
                      if (arr.length === 0) {
                  
                  
                          return false
                  
                  
                      }
                  
                  
                      let index = Math.floor(arr.length/2)
                  
                  
                      let pivot = arr[index]
                  
                  
                      if (pivot === num) {
                  
                  
                          return true
                  
                  
                      }
                  
                  
                      else {
                  
                  
                          let arrLeft = arr.slice(0, index)
                  
                  
                          let arrRight = arr.slice(index+1, arr.length)
                  
                  
                          if (num < pivot) {
                  
                  
                              fastBinarySearchSorted (arrLeft, num)
                  
                  
                          }
                  
                  
                          else if (num > pivot) {
                  
                  
                              fastBinarySearchSorted (arrRight, num)
                  
                  
                          }
                  
                  
                      }
                  
                  
                  }
                  
                  
                  
                  
                  
                  console.log(fastBinarySearchSorted ([3,4,7,9,12,15,77], 77))
                  
                  
                
Если перед return поставить console.log(true/false) и вызывать fastBinarySearchSorted ([3,4,7,9,12,15,77], 77) выводит что положено, но возвращает почему-то undefined
не забывайте делать ретурн везде где это необходимо. В вашем случае делайте ретурн перед рекурсивным вызовом
Так перед рекурсивным вызовом же непонятно ещё false или true там будет...
как это не понятно - функция рекурсивная вам и вернет true или false и этот результат вы и должны вернуть
Обсуждают сегодня