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

Анна 4 минуты назад →

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

// BEGIN (write your solution here)
const gcd = (m, n) => {
    if(m && n === 0) {
      return false;
    }
    if(m || n === 1){
      return 1;
    }
    if(m === n){
      return m;
    }
    if(m % 2 === 0 && n % 2 === 0) {
      return 2 * gcd(m / 2, n / 2);
    }
    if(m % 2 === 0 && n % 2 !== 0) {
      return gcd(m / 2, n);
    }
    if(m % 2 !== 0 && n % 2 === 0) {
     return gsd(m, n / 2);
    }
    if(m % 2 !== 0 && n % 2 !== 0 && n > m) {
      return gsd((n - m) /2, m);
    }
    if(m % 2 !== 0 && n % 2 !== 0 && n < m) {
      return gsd((m - n) /2, n);
    }
}
export default gcd;
// END

Nikita Kostichev 8 минут назад →

Помогите разобраться в чем проблема!

Код:

  orderBy(fn, direction = 'asc') {
    // BEGIN (write your solution here)
    const pointer = direction === 'asc' ? 1 : -1;
    const comparator = (a, b) => {
      if (fn(a) > fn(b)) {
        return pointer;
      }
      if (fn(a) < fn(b)) {
        return -pointer;
      }
      return 0;
    };
    return this.collection.slice().sort(comparator);
    // END
  }

Тесты:

make: Entering directory '/usr/src/app'
npm -s test
 FAIL  __tests__/Enumerable.test.js
  HexletLinq
    ✓ select (3ms)
    ✕ orderBy (7ms)
    ✕ orderByDesc (1ms)

  ● HexletLinq › orderBy

    TypeError: coll.orderBy(...).where is not a function

      28 |     const result = coll
      29 |       .orderBy(car => car.year)
    > 30 |       .where(car => car.brand === 'kia');
         |        ^
      31 | 
      32 |     const expected = [cars[3], cars[4], cars[2]];
      33 | 

      at Object.where (__tests__/Enumerable.test.js:30:8)

  ● HexletLinq › orderByDesc

    TypeError: coll.orderBy(...).where is not a function

      39 |     const result = coll
      40 |       .orderBy(car => car.year, 'desc')
    > 41 |       .where(car => car.brand === 'bmw');
         |        ^
      42 | 
      43 |     const expected = [cars[0], cars[1]];
      44 | 

      at Object.where (__tests__/Enumerable.test.js:41:8)

Test Suites: 1 failed, 1 total
Tests:       2 failed, 1 passed, 3 total
Snapshots:   0 total
Time:        0.901s, estimated 1s
Ran all test suites.
Makefile:2: recipe for target 'test' failed
make: Leaving directory '/usr/src/app'
make: *** [test] Error 1

Посмотрел документацию, может проблема в этом:

Функция вызвана с неверным объектом

iddqdidkfa около 3 часов назад →

Вынос мозга конечно, очень сложная задача как по мне (подводочку бы какую-то, как обычно от менее сложного к более сложному). Парочка вопросов:

mode = 'bell';

...

  incrementH() {
    return false;
  }
  incrementM() {
    return false;
  }

Когда звенит будильник часы перестают идти?

setState(Klass) {
    this.state = new Klass(this);
  }

Кринж почему-то поймал от нейминга, это легально вообще? Ну и собственно расширенный курс по ООП где хороший почитать, пока что уверенно могу сказать что такой код как у учителя не напишу даже близко)

Егор Ефимов около 3 часов назад →

Здравствуйте, тест проходит, но линтер ругается на предпоследнюю строчку "10:25 error Unnecessary use of boolean literals in conditional expression no-unneeded-ternary" Я так понимаю он ругается на булевы переменные, но как записать правильно не понимаю, объясните пожалуйста.

const isPrime = (n) => { if (n < 2) { return false; } let result = 2; while (n % result !== 0) { result += 1; } return (result < n) ? false : true; };

Artem Glushaev около 5 часов назад →

Не могу понять, как мне считать количество повторений одного слова. https://ru.hexlet.io/code_reviews/128200. Думаю, что это должен быть цикл, но пока не понимаю, какое условие в нем должно быть.

Evgeny Malafeev около 5 часов назад →

Добрый день. Не могу понять эту строчку из теории:

А дальше все интерфейсные методы часов, поведение которых зависит от состояния, делегируют все вызовы внутрь объекта состояния.

У нас есть основной объект часов - AlarmClock и есть объект-конструктор состояния State. Каким образом AlarmClock делегирует вызовы внутрь объекта State ? Через наследование ? Я изучил еще теорию про паттерн State. Там говориться, что:

Контекст (наш AlarmClock) передаёт себя в конструктор состояния, чтобы состояние могло обращаться к его данным и методам в будущем, если потребуется.

Для этого там в объекте состояния используется protected field. Не понимаю, как я могу связать AlarmClock со State, кроме как через наследование.

Евгений Светличный около 6 часов назад →

Друзья, прошел задание, проверка ошибок не выявила, но мой код отличается от кода учителя тем, что константу "С" я возвел в степень 2. Учитель в свою очередь помножил константу саму на себя. В итоге мое решение не эффективно или ошибочно?

Мой код:

const weight = 80
const c = 300000000
const energy = weight * c ** 2 
// BEGIN (write your solution here)
console.log(energy);
// END

Код учителя:

const weight = 71;
const c = 300000000;
const energy = weight * c * c;
// END

Максим Литвинов около 6 часов назад →

Здравствуйте! А почему в решении учителя свойство dates публичное? Получается, можно записать туда что-то, минуя процедуру book

iddqdidkfa около 7 часов назад →

Решил как мудак , решение учителя понятно, вопросов несколько имею: насколько автоматное программирование быстрее с точки зрения обработки данных, и еще - где-то в каком-то тренинге один господин сильно матерился на свичи, вплоть до того что их уже давно пора удалить из js, но есть куча индусокода который надо поддерживать)) Это я к чему, можно ли стейты в обычные ифы запихивать, и почему нет (или да), вообще возможно есть более простая реализация такого подхода к коду (пока вижу овер 9000 лишних строк для 3 стейтов по сути).

Лекцию Кирилла смотрел, все круто, но пока очень хз по этому поводу, в контексте задачи урока какой-то оверхед просто видится мне.

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

Хекслет

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