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

Mote Mere 20 декабря 2017 →

Сначала благодарность: это просто разрыв мозга. Мне со школы не было так интересно!

Теперь вопрос: как работает мое решение и чем оно отличатся от решения учителя?
И еще вопрос: сколько раз нужно пройти этот курс, чтобы все вот это улеглось на свои места в голове?

Артем Лебедев 20 декабря 2017 →

Прошу помочь с поиском ошибки. Пытюсь решить задачу, но столкнулся со странной ошибкой: после возврата итогового лога опять запускается iter с последними переданными значениями (можно увидеть по выводам в консоли), из-за этого программа попадает в бесконечный цикл. Почему такое происходит?

solution:

  const iter = (health1, player1, health2, player2, order, log) => {
    console.log(`iter ${health1} ${health2}`);
    if (health1 <= 0) {
      const logItem = {
        health1: health1,
        health2,
        message: '${player2} победил',
      }
      console.log(`***FINISH*** ${health1} ${health2}`);
      return consList(logItem, log);
    }

    const card = customRandom(cards);
    const cardName = card.name;
    const damage = card.damage(health2);
    const newHealth = health2 - damage;

    if (order === 1) {
      const logItem = {
        health1,
        health2: newHealth,
        message: '',
      }
    }
    if (order === 0) {
      const logItem = {
        health1: newHealth,
        health2,
        message: '',
      }
    }
    const newLog = consList(logItem, log);
    console.log(`${newHealth}`);
    const returnIfOrder1 = iter(newHealth, player2, health1, player1, 0, newLog);
    const returnIfOrder0 = iter(newHealth, player1, health2, player2, 1, newLog);
    return order === 1 ? returnIfOrder1 : returnIfOrder0;
  };

simpleCards:

const make = (name, points) => ({ name, damage: health => points,});

export default make;

Евгений Макеев 20 декабря 2017 →

Добрый день. Правильно ли я понял, что строка в решении учителя:

const { name } = getPropertyAction(arg);

это распаковка объекта возвращаемого функцией, по имени свойства в константу с таким же именем? То есть:

const { a } = {a: 3, b: 4, c: 5}  // a = 3

Ну и если не затруднит, покритикуйте мое многострадальное решение данной задачи: решение есть там проблески мысли, или совсем все топорно?

Олег Ильин 20 декабря 2017 →

А можете объяснить происхождение названий "car" и "cdr"? Спасибо

Дмитрий Белоусов 20 декабря 2017 →

Добавьте в условие, что 1 не является простым числом!!! Для некоторых это неизвестный факт, например для меня. В итоге имея правильное решение, кроме проверки (num < 2) убил 20 минут, ломая голову. Очень расстроился, когда увидел решение.

влад влад 20 декабря 2017 →

не могу понять с чего начать. что вообще должны возвращать результаты рекурсивных вызовов? точнее что возвращать я вроде бы понял (объект с измененным свойством name), но как это реализовать не понимаю. по всей видимости вариант обычной перезаписи свойства не подойдет three.name = three.name.toLowerCase() т.к. в этом случае будет изменен исходный объект. а как тогда по другому. дайте наводку с чего начать...

Askarov Alikhan 20 декабря 2017 →

как же помогают 2 штуки в решении - ручка и листок

Igor Shkidchenko 20 декабря 2017 →

Добрый день , подскажите пожалуйста по такому вопросу , проходит все тесты кроме этого ✕ "body must include #header", "#main" and "#footer" divs (5ms) Но вроде они есть > https://drive.google.com/file/d/1bf0PY5zhJvbH82PWDoQo7_7QSGOevrrX/view?usp=sharing

Максим Лойко 20 декабря 2017 →

Здравствуйте! Мой код:

// removed

Последний тест в задаче он не проходит. У меня 2 варианта:

  1. проверять какая именно функция передается как аргумент и дальше с помощью условий ее обрабатывать корректно (для плюса формула расчёта result будет отличаться от result если передана функция умножения/степени)
  2. переделывать полностью код и как пишут в комментариях делать через итеративный процесс (почему-то вызывает сложности такое решение)

Как тут будет правильнее? Решение учителя не хочется смотреть

Игорь Б. 20 декабря 2017 →

Добрый день, решил задание, но линтер вот на эту строку

toward === 'desc' ? this.collection.sort(compare).reverse() : 
    this.collection.sort(compare);

сообщает "Expected an assignment or function call and instead saw an expression." То есть, я понимаю, как это перевести на русский, но хотелось бы получить разъяснение по поводу такого использования тернарного оператора. А также уместность применения метода reverse() в данном решении. https://ru.hexlet.io/code_reviews/31516

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

Хекслет

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