Показать сообщение отдельно
  #2 (permalink)  
Старый 02.11.2016, 18:01
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Ну на вскидку всё верно, разве что в первой задаче после result = false, следует сделать break из цикла, ибо одного false достаточно. Во второй же задаче, аналогично, else лишний: нет никакого смысла каждую итерацию переопределять result как false, т.к. первый же true приведёт к завершению функции, имеет смысл присвоить result = false в самом начале по аналогии с первой функциией.
Ставить в циклах break, а return делать в конце, или делать return сразу в цикле - вопрос исключительно стиля кода, т.е. делайте так, как вам преподают.
То же касательно if(foo == true) vs if(foo) и if(bar != true), if(bar == false) vs if(!bar), первое нагляднее и считается более правильным, но второе проще и встретить можно чаще.

По последней функции: поскольку вы используете let, то, надо полагать, подразумевается самый современный javascript, тогда можно было бы сделать всё по-модному, например:
dif: function() {
            for(let i = 0; i < arguments.length; i++) {
                console.log(result);
                result -= arguments[i];
            }
            return result;
        },
->
dif: (...args) => args.reduce( (a, b) => a - b, result ),
Но это если только вам показывали такую "магию". Сам по себе ваш вариант ничуть не хуже, и скорее всего даже производительнее.)

Единственный момент, в последней функции у вас переменная result для всех методов едина, а значит все вычисления для конкретного myCalculator сохраняются, что было бы логично, но судя по примеру каждый раз вычисления должны начинаться с изначального значения.
__________________
29375, 35

Последний раз редактировалось Aetae, 02.11.2016 в 18:28.
Ответить с цитированием