no tutaj rozumuje poprawnie, ale juz w pierwotnym kodzie, gdy przekazuje te parametry, nie dziala
Kopiuj
function sum(array){
var rozmiar = array.length;
return (sum(range(array[0],array[rozmiar-1])));
}
var tabs=[1,2,3,4,5,6,7,8,9,10,11,12];
console.log(sum(tabs));
Czy dobrze rozumiem że bierzesz pierwszy i ostatni element tablicy (1 i 12) i z tego przedziału tworzysz nową taką samą tablicę jak pierwotna?(tablica o przedziale 1 do 12 w tym przypadku)
Bo jeżeli tak to trochę chyba mija się z celem.
Kopiuj
return (sum(range(array[0],array[rozmiar-1])));
Nic dziwnego że nie działa gdyż twoja funkcja range()
wypisuje liczby z danego przedziału a NIE zwraca je jako tablicę a ponieważ nie zwraca tablicy nie ma wartości lenght
.
Kopiuj
function range(start,end)
{
const tablica=[];
for(var i=0;i<end-start+1;i++){
if(i==0) {
tablica[i]=start;
continue;
}
else if (i!=0){
tablica[i]=tablica[i-1]+1;
continue;
}
}
for(var i=0;i<end-start+1;i++){
console.log(tablica[i]);
}
return tablica;
}
EDIT: Nie będzie. Nie przypatrzyłem się.
Tutaj:
Kopiuj
function sum(array){
var rozmiar = array.length;
return (sum(range(array[0],array[rozmiar-1])));
W funkcji sum wywołujesz ją samą co tworzy nieskończoną "pętle".