Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/41: Рейтинг темы: голосов - 41, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 68

Задача на преобразование типов

20.08.2020, 17:52. Показов 8731. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите ошибку

JavaScript
1
2
3
4
5
6
7
function getGuestsCount(guestsInput ) {
  if (parseInt(getGuestsCount) > 0) {
    return parseInt(getGuestsCount);
  } else {
    return 'not a number';
  }
}
К сожалению, программисты сделали это поле текстовым и теперь отель получает результаты в виде "1 гость", "3", "Я и моя малая", "Двое гостей", "Где-то 6". Давай улучшим программное обеспечение гостиницы и напишем для них функцию getGuestsCount, которая будет принимать строку guestsInput и возвращать число гостей. Если количество гостей определить невозможно - возвращать строку "not a number"


В следующем задание система такая же ? :

На своих вебинарах преподаватель Миша, просит ставить + в чат, если все понятно, или - - если нет. Конечно, большинство ставит +, кто-то ставит -, но есть и студенты, которые ставят 1, 0, понимаю, окей... Давай поможем Мише и напишем программу для сбора статистики. Функция getStatistic будет принимать имя студента name, и его ответ в чате answer. Результатом функции будет строка name understands илиname does not understand. Иногда сервер подвисает, в эти моменты функция не получает ответ. Только имя и null,undefined или NaN. Предлагаю в таких случаях не портить статистику и возвращать строку "server error".
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.08.2020, 17:52
Ответы с готовыми решениями:

Преобразование типов
Допустим ввожу я в массив строки "1" и "2", которые сразу конвертируются в число, затем хочу провести сложение нулевого элемента массива с...

Преобразование типов
Всем добрый вечер. Вопрос в следующем, а есть ли где то таблица по преобразованию типов. Допустим мы пустую строку складываем с Infinity и...

Преобразование типов
Здравствуйте. Ситуация такая: есть скрипт, который через XML запрос запрашивает параметр. Вот код функции запроса: function...

4
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
20.08.2020, 18:57
Если нужно распознать "Где-то 6", то короткий способ - регулярное выражение.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
function getGuestsCount(guestsInput: string) {
    let match = guestsInput.match(/\d+/);
 
    return match ? match[0] : "not a number";
 
}
console.log(getGuestsCount("1 гость"));
console.log(getGuestsCount("3"));
console.log(getGuestsCount("Я и моя малая"));
console.log(getGuestsCount("Двое гостей"));
console.log(getGuestsCount("Где-то 6"));
Если регулярные выражения использовать нельзя, то нужно начинать тренироваться пользоваться циклом for для каждого символа. Понимаю, что это сложно, и сейчас циклами for никто не заморачивается. Но учеба требует жертв...
0
0 / 0 / 0
Регистрация: 06.06.2016
Сообщений: 68
20.08.2020, 21:41  [ТС]
Данный вариант вообще не подходит , задание делаешься через преобразование
JavaScript
1
2
3
4
5
6
7
function getGuestsCount(guestsInput ) {
  if (parseInt(getGuestsCount) > 0) {
    return parseInt(getGuestsCount);
  } else {
    return 'not a number';
  }
}
этот код работает только на 50% , когда заходят данный типо "3 человек" идет через елс
0
0 / 0 / 0
Регистрация: 19.01.2021
Сообщений: 1
19.01.2021, 16:42
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
'use strict';
 
/**
 * @param {string} guestsInput
 *
 * @returns number
 */
 
// write code here
function getGuestsCount(guestsInput){
  if(parseFloat(guestsInput) == 0){
    return 0;
  }
 
  if(Boolean(parseInt(guestsInput)) != !true){
    return parseInt(guestsInput);
  }
  else {
    return 'not a number';
  }
 
  
}
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
20.01.2021, 09:16
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

Если ничего не понятно, то разжеванный вариант:
- с регулярными выражениями:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
 * Распарcить число гостей как последовательность цифр из строки произвольного формата
 * @param {string} guestsInput строка произвольного формата
 * @returns {number|string} если последовательность цифр найдена, то число с типом number, 
 * иначе - строка "not a number"
 */
function getGuestsCount(guestsInput) {
    let match = guestsInput.match(/\d+/);
 
    return match ? +match[0] : "not a number";
 
}
console.log(getGuestsCount("1 гость"));
console.log(getGuestsCount("3"));
console.log(getGuestsCount("Я и моя малая"));
console.log(getGuestsCount("Двое гостей"));
console.log(getGuestsCount("Где-то 6"));
- перебором символов в guestsInput в цикле и получением непрерывной последовательности цифр:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 * Распарcить число гостей как последовательность цифр из строки произвольного формата
 * @param {string} guestsInput строка произвольного формата
 * @returns {number|string} если последовательность цифр найдена, то число с типом number, 
 * иначе - строка "not a number"
 */
function getGuestsCount(guestsInput) {
    let str = ""; // Строка, в которую добавляются цифры
    let inNumber = false; // Текущий символ в числе
 
    for (let i = 0; i < guestsInput.length; i++) {
        let c = guestsInput[i];
        if (c >= "0" && c <= "9") {
            if (!inNumber) inNumber = true;
 
            str += c;
        }
        else {
            if (inNumber) break; // Последовательность цифр закончилась
        }
    }
    // Если последовательность цифр непустая, то преобразовать в число с типом number и вернуть,
    // иначе вернуть "not a number"
    return str ? +str : "not a number";
}
В разжеванном варианте функция возвращает результат попеременно двух типов - number и string,
это не приветствуется в нормальном программировании.
Ошибку обычно выбрасывают в объекте Error.

Добавлено через 24 минуты
Вторая задача:
Цитата Сообщение от hennessy7219 Посмотреть сообщение
На своих вебинарах преподаватель Миша, просит ставить + в чат, если все понятно, или - - если нет. Конечно, большинство ставит +, кто-то ставит -, но есть и студенты, которые ставят 1, 0, понимаю, окей... Давай поможем Мише и напишем программу для сбора статистики. Функция getStatistic будет принимать имя студента name, и его ответ в чате answer. Результатом функции будет строка name understands илиname does not understand. Иногда сервер подвисает, в эти моменты функция не получает ответ. Только имя и null,undefined или NaN. Предлагаю в таких случаях не портить статистику и возвращать строку "server error".
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        /**
         * Вернуть информацию, понятно ли студенту
         * @param {string} name имя студента
         * @param {string} answer произвольная строка. В нормальном режиме - плюс/минус или 1/0. 
         * @returns {string} строка с информацией, понятно ли студенту
         */
        function getStatistic(name, answer) {
            switch (answer) {
                case "-":
                case "0": return name + " does not understand";
                case "+":
                case "1": return name + " understands";
                default: return "server error";
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.01.2021, 09:16
Помогаю со студенческими работами здесь

Преобразование типов
Всем привет. Изучаю JavaScript на сайте https://learn.javascript.ru/object-conversion#численное-преобразование встретился пример var...

Преобразование типов
Как преобразовать из числа типа float в int?

Преобразование типов данных
Начал осваивать JavaScript, учу по книге и вот не могу разобрать приведённый пример, а пропускать и идти дальше что-то не поняв не очень...

Преобразование типов в javascript
Добрый день. Столкнулся с такой необходимостью: Есть страница, на которой крутится js, страница отдает данные в другую систему (CRM). ...

Преобразование типов данных в JavaScript
Ситуация такова: есть стринговая переменная s='12' необходимо проверить действительно ли там число записано, преобразовать(если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru