Olesya код выглядит хорошо. Попробуй перезапустить vscode и отправить на проверку еще раз.

Если не поможет, то удали все из функции и напиши return 0. Если ошибка Х 1. extractNumber должна возвращать число не уйдет, то будем проверять что не так с твоим аккаунтом.

  • Olesya ответили на это сообщение.

    Coderslang_Master
    перезапуск не помог.
    При return 0 первая ошибка уходит, но при возвращении текста функции - опять выдает, что всё неправильно. 🙁

      Olesya Нашел проблему. Она на нашей стороне.

      На сервере проверки задач использовалась версия node.js 14, которая не поддерживает функцию replaceAll. Сейчас обновляем node.js до 16.4.0

      Отправь повторно на проверку чуть позже.

      • Olesya ответили на это сообщение.
        3 месяца спустя

        Может кому то интересно будет, у меня покороче вышла функция.
        export const extractNumber = (s) => {
        let newS = s.split('');
        for(let i = 0; i < newS.length; i++){
        let str = '';
        if(isNaN(newS) && newS != '.' || newS === ' '){
        delete newS
        }
        }
        return Number(newS.join(''));
        }

        • salton ответили на это сообщение.

          Artis чтоб совсем уж кратко, то тогда уже так:

          export const extractNumber = (s) => {
            return Number(s.replace(/[^0-9,\.]/g,""));
          }

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

          • Artis ответили на это сообщение.

            salton до регулярок думаю еще далеко по материалу))

            • salton ответили на это сообщение.

              Artis до регулярок думаю еще далеко по материалу))

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

              • Artis ответили на это сообщение.

                salton
                очень жаль что не будет лекции о регулярках.
                В таком случае не вижу смысла писать решение с регуляркой не расшифровав ее.
                Тогда бы это было действительно для ознакомления, а так только новичков с толку сбивать...

                  Artis Так суть всех задач - написать оптимальный рабочий код, а не краткий вариант....
                  Ведь даже ваш вариант можно было бы написать в одну строку - и код был бы рабочим, но не читаемым. Так само и с регулярками - вроде как и быстро пишутся (если понимаешь что писать), но потом постороннему человеку сидеть и разбираться что в патерне - лишняя головная боль!

                  • Artis ответили на это сообщение.

                    salton так и я о том же, что не вижу толку от решения(примера) для учеников что вы написали используя регулярные выражения. Они все равно не поймут, а только с толку собьете. Тут и так почитаешь что сидят по несколько дней над задачей решение которой по сути занимает 3 минуты параллельно лениво попивая кофеек. Тут все ученики, кто пишет, пытается разобраться в задаче\коде. Судя по коментам ранее, Вы и сами не столь давно начали учиться(может я конечно ошибаюсь). Конечно Вы молодец что активничаете тут, это радует. Просто если хотите как говорится блеснуть полезной информацией то давайте развернуто чтобы люди понимали хотя бы что вы написали, ну или вообще не стоит писать сложных решений для ученика.

                    p.s. Если кратко, мы же учимся все тут, а не меряемся знаниями, если говоришь о чем-то, то нужно знать, о чем говоришь и понимать это самому, для того что бы правильно донести решение не знающим так, что бы они это поняли и запомнили. А регулярные выражение я бы не сказал что очень редко используются, как не крути и парсинг он в очень многих веб проектах нужен.

                    • salton ответили на это сообщение.

                      Artis информацию вы конечно выложили поучительную. Но видно так и не поняли для чего я выложил пример. Вы хвалились "кратким вариантом" - я вам показал ещё короче. Но в обеих случаях - короче, не значит правильно. Это я и пытался донести. Блеснуть полезной информацией цели не было и не будет. Я пока не готов к менторству. Просто помочь людям разобраться с задачей - можно!

                      4 месяца спустя

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

                      export const extractNumber = (s) =>
                      {
                      let r = s.split('');
                      let w = [];
                      for (let i = 0; i < r.length; i++)
                      {
                      if (r >= 0 && r <= 9 || r === '.')
                      {
                      w = r;
                      }
                      }
                      return Number(w.join(''));
                      }

                        7 дней спустя

                        Benstize мы не можем запретить ученикам использовать то, что они выучили сами. В то же время в лекции есть вся информация которая нужна чтобы решить задачу. Если это оказывается не так, то мы дополняем лекцию.

                        год спустя

                        Еще не читал ваши решения, по этому сначала выставлю свой вариант решения, затем прочту как вы решали это все. Сначала создал функцию разбивающую строку на массив (который получал каждый символ как отдельный элемент), затем создал новый массив. С помощью for and if прогнал каждый элемент массива и если условия соблюдались элемент вставлялся в новый массив. Затем Преобразовал новый массив в строку и методом trim() убрал пробелы. Когда возвращал сроку переопределил ее тип на численный с десятичными (parseFloat) и вывел результат. Все работает, горжусь собой =)
                        Код:
                        export const extractNumber = (s) => {
                        let oldMass = s.split('');
                        let newMass = [];

                        for (let i = 0; i < oldMass.length; i++) {
                        if ((oldMass >= 0) || (oldMass === '.')) {
                        newMass.push(oldMass);
                        }
                        }
                        let numbers = newMass.join('');
                        numbers.trim();
                        return parseFloat(numbers);
                        };

                        Написать ответ...