function foo(arr, i = 0) {
if (arr.length === i + 1) {
return arr[i];
}
return arr[i] * foo(arr, i + 1);
}
const initialState = {
limit: 20,
page: 1,
data: [],
isFetching: false,
isFail: false,
};
export function items(state = initialState, action) {
switch (action.type) {
case 'FETCH_ITEMS':
return { ...state, isFetching: true, isFail: false };
case 'FETCH_ITEMS_SUCCESS':
return {
...state,
isFetching: false,
data: [ ...state.data, ...action.payload.data ],
page: action.payload.page,
};
case 'FETCH_ITEMS_FAIL':
return { ...state, isFetching: false, isFail: true };
default:
return state;
}
}
$('.checkbox').change(reCalc);
$(this).toggleClass('btn-outline-danger').toggleClass('btn-success');
Закрывая глаза на то, что все написано с большой буквы, у вас ошибки в каждой строке и дело тут не в незнании рекурсии. Вот конструктивный разбор:
(1) - вы принимаете аргументы a и x, но ни один не используете
(2) - переменная n не определена в коде
(3) - даже если тут подразумевался случай с длиной массива 1 возвращать надо значение первого элемента, а не 1
(4) - объявляете переменную I, в условии проверки итератора, какой-то абсурд. Видно, что вы вообще не понимаете как использовать оператор for
(5) - возвращаете не вызов функции, а саму функцию умноженную на неопределенную в коде переменную
(6) - в консоли вызываете push на неопределенной переменной, видимо массиве, но зачем.
Упрек Alex отнюдь не безосновательный не обижайтесь. Сосредоточьтесь пока на основах. learn.javascript.ru вам отлично подойдет для изучения, там в конце каждой главы задания на закрепление материала.
Вас тут никто не "обсирал". Я вам, показал альтернативу, объяснил, что вы не знаете основ языка и вам бы взяться за учебник, так как с таким подходом вы ничему не научитесь. Да еще и решение с рекурсией показал.
Если вы нацелены на эффективный рост, изучить теорию вам необходимо. Лучше это делать последовательно.
ad hominem