Сообщество Хекслета

Владислав Ярышев 06 ноября 2017 →

Застрял. Функция concat. судя по всему, в функции нужно задавать дополнительный параметр в виде пустого списка и в нем накапливать содержимое первого, а потом слеплять второй и новый. Это правильная логика? Или не совсем?

Даниил 06 ноября 2017 →

const mostDivisor = (a, b) => { // (2, 3)
    let a1 = a; // 2 , 2 , 0
    let b1 = b; // 3 , 1 , 1
    console.log(`первый`, a1, b1);
    while (a1 !== 0 && b1 !== 0) {
      if (a1 > b1) {
        a1 = a1 % b1; // (2, 1) , a1 = 0
        console.log('второй', a1, b1);
      } else if (a1 < b1 || a1 === b1) {
      b1 = b1 % a1;  // (3, 2) , b1 = 1
      console.log('третий', b1, a1);
       }
    }
  return a1 + b1;
};

export default mostDivisor;'

Почему, если я убираю второе условие else if (a1 < b1 || a1 === b1) программа падает с ошибкой, т.е. судя по console.log когда она должна выйти из цикла после первого условия, она начинает выполнять второе условие. Вроде же можно опустить else if и просто написать выражение, и это эквивалентно тому, если бы это условие было четко обозначено, или я что-то не понимаю?

Alex Weinberg 06 ноября 2017 →

Есть вот такой код:

const sequenceSum = (begin, end) => {
    if (begin > end) {
      return NaN;
    }
    if (begin === end) {
      return end;
    }
    if (begin !== end) {
    return begin + sequenceSum(begin + 1, end);
    }
};

И он нормально работает и проходит тестирование. Есть вот такой код, вроде бы аналогичный:

const sequenceSum2 = (begin, end) => {
    console.log(begin, end);
    if (begin > end) return NaN;

    begin === end ? end : begin + sequenceSum(begin + 1, end);
}

Но он не работает. Я попробовал приблизить первый ко второму:

const sequenceSum3 = (begin, end) => {
    if (begin > end) {
      return NaN;
    }
    const flag = begin === end;
    if (flag) {
      return end;
    }
    if (!flag) {
    return begin + sequenceSum(begin + 1, end);
    }
};

И он тоже работает. Почему в данном случае тернарный оператор не работает?

Артем Seogain 06 ноября 2017 →

Очень понравилось!Отличная тренировка на запоминание и практику. Побольше бы таких заданий, над которыми надо посидеть, подумать и просмотреть конспекты.

Небольшой лайфхак для тех, кто еще не пользуется: задачу лучше всего сначала разбирать на бумаге (условие, дано, схематично), потом делать логический алгоритм выполнения и потом под него писать код)

P.S С Вами не давно, интересует вопрос, в курсах по подписке, тоже такие же схематичные объяснения материала есть?

Sergey Erofeev 06 ноября 2017 →

Все ни как не могу привыкнуть к array_map(), такую билеберду горожу :)

        foreach ($params as $name => $type) {
            $str .= $name . ' ' . $type . ', ';
        }

Владислав Кривенко 06 ноября 2017 →

Вот текст моей программы

  function sequenceSum(begin, end) {
  if (begin != end) { 
    return begin + sequenceSum(begin + 1, end);
  } else {
    return end;
  }
}
console.log(sequenceSum(1, 5));

Вот текст ошибки

make: Entering directory '/usr/src/app'
npm test
npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm info lifecycle @~pretest: @
npm info lifecycle @~test: @

> @ test /usr/src/app
> jest --colors

 FAIL  __tests__/sequenceSum.test.js
  ● solution

    expect(received).toBe(expected)

    Expected value to be (using ===):
      0
    Received:
      undefined

    Difference:

      Comparing two different types of values. Expected number but received undefined.

      at Object.<anonymous>.test (__tests__/sequenceSum.test.js:4:44)
      at Promise.resolve.then.el (../../local/share/.config/yarn/global/node_modules/p-map/index.js:42:16)

  ✕ solution (10ms)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        0.236s, estimated 1s
Ran all test suites.
  console.log sequenceSum.js:10
    15

npm info lifecycle @~test: Failed to exec test script
npm ERR! Test failed.  See above for more details.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
Makefile:2: recipe for target 'test' failed
make: *** [test] Error 1
make: Leaving directory '/usr/src/app'

Sergey Ponomarev 06 ноября 2017 →

доброго времени суток.

объясните пожалуйста, почему в

const secret = 'qwerty';
const isCorrectPassword = savePassword(secret);
const savePassword = password => passwordForCheck => password === passwordForCheck;

при вызове

console.log(isCorrectPassword('wrong password'));
console.log(isCorrectPassword('qwerty'));

параметр для isCorrectPassword падает параметром в passwordForCheck?

Антон З. 06 ноября 2017 →

При решении проблем не возникло, но вопрос непосредственно по качеству кода. У учителя код длиннее, и на мой субъективный взгляд, это не придает ему ясности и понятности. С другой стороны я понимаю, что учитель просто так написать длинный код не мог, и этому должна быть причина. Объясните, пожалуйста, чем хорош подход учителя, и чем плох мой? Интуитивно догадываюсь, что моя проблема в сложноватых условиях для ифов.

Bulat Kaliev 06 ноября 2017 →

Почти две недели не могу решить, даже вернулся и пересмотрел все видео с середины курса))

const summ = (str) => {
    let result = 0;
    for (let i = 0; i < str.length; i++) {
      result += str[i];
    }

    return result;
}

const addDigits = (num) => {
    if ( num < 10 ) {
      return num;
    }

    return summ(num);
}

export default addDigits;
make: Entering directory '/usr/src/app'
npm test
npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm info lifecycle @~pretest: @
npm info lifecycle @~test: @

> @ test /usr/src/app
> jest --colors

 FAIL  __tests__/addDigits.test.js
  ● addDigits

    expect(received).toBe(expected)

    Expected value to be (using ===):
      1
    Received:
      0

      at Object.<anonymous>.test (__tests__/addDigits.test.js:6:40)
      at Promise.resolve.then.el (../../local/share/.config/yarn/global/node_modules/p-map/index.js:42:16)

  ✕ addDigits (7ms)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        0.589s, estimated 1s
Ran all test suites.
npm info lifecycle @~test: Failed to exec test script
npm ERR! Test failed.  See above for more details.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?
Makefile:2: recipe for target 'test' failed
make: Leaving directory '/usr/src/app'
make: *** [test] Error 1
Run failed! Check and fix errors above!

Я явно что-то упустил в цикле for, но не вижу что именно, и всегда получаю результат 0.

Sergey Erofeev 06 ноября 2017 →

Тут можно потренироваться в реализации SQL запросов:

www.sql-ex.ru

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Javascript, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →