Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Оцените решение задачки, пжл (https://javascript.ru/forum/misc/74647-ocenite-reshenie-zadachki-pzhl.html)

Nexus 26.07.2018 19:12

Dilettante_Pro, chrome v67.0.3396.99 возвращает массив.

MC-XOBAHCK 26.07.2018 19:13

Цитата:

Сообщение от Dilettante_Pro
Да она ничего не возвращает - хоть сумму, хоть диапазон...

Вот страница с этим решением http://eloquentjavascript.net/code/#4.1 (там кнопочка в самом низу Показать решение).

У меня работает и возвращает массив.

Nexus 26.07.2018 19:15

Меня логика в объявлении параметров и 2 почти одинаковых цикла подбешивают.
Я бы как-нибудь так лучше сделал (не знаю как условие сократить, а очень хочется):
function range(start, end, step) {
    step = step !== undefined ? step : (start < end ? 1 : -1);
    let array = [];

    for (let i = start; step > 0 && i <= end || step < 0 && i >= end; i += step)
        array.push(i);


    return array;
}

рони 26.07.2018 19:15

MC-XOBAHCK,
Сумма диапазона, а без циклов решение сможешь?

Nexus 26.07.2018 19:22

рони, с шагом отличным от 1?

рони 26.07.2018 19:36

Nexus,
с любым шагом 1,2,5,-7,-1 ... условие одно, никаких циклов

Alexandroppolus 26.07.2018 19:36

рони,
через рекурсию?

рони 26.07.2018 19:38

Nexus,
alert(fun(10,1,-1));
alert(fun(1,10,1));
alert(fun(10,1));
alert(fun(1,10));
все вызовы вернут 55

рони 26.07.2018 19:39

Alexandroppolus,
без рекурсии

MC-XOBAHCK 26.07.2018 19:41

Цитата:

Сообщение от рони
Сумма диапазона, а без циклов решение сможешь?

да, есть же reduce в JS.


Часовой пояс GMT +3, время: 05:55.