У меня есть эта простая функция «декодировать», которая принимает 2 массива в качестве входных данных, где второй массив используется для декодирования первого массива.
Начальный вход (не когда функция возвращается) всегдаследующего формата:
- 1-й массив имеет длину 1
- 2-й массив имеет степень 2, минус 1 (1,3,7,15,...)
Пример ввода: ([4],[0,2,6])
По какой-то причине мой код всегда возвращает неопределенное значение, когда я пытаюсь вернуть декодированный массив.На самом деле, я не могу вернуть ничего, кроме undefined, даже когда я изменяю инструкцию return на что-то вроде «return false».Операторы журнала показывают, что для обоих массивов фиксируются правильные значения, что меня очень смущает.
Вот мой код:
var decode = function(A, B){
console.log("A: "+A+" B:"+B);
console.log(B.length);
if(B.length===0){
return A;
}
var newA = [];
var newB = [];
var act = 0;
for(let i=0; i<A.length; i++){
newA[act] = A[i] - (B[i]/2);
newA[act+1] = A[i] + (B[i]/2);
act+=2;
newB = B.slice(i+1);
}
decode(newA, newB);
}
console.log("Answer is" + decode([4], [0,2,6]));
Это всегда будет возвращать неопределенное значение, независимо от того, что вы делаетеответное заявление.Console.log (А);с другой стороны, дает мне правильное значение для того, что я хочу вернуть.
Большое спасибо за помощь!С благодарностью.