vmlzn
@vmlzn

Как оставить только 1 входное число?

всем привет ! у меня есть задача чтобы вступить на курс, я ее почти решила, у меня осталось два условия, доделать. вот задача: есть входная строка, в которой есть цифры, мне нужно вернуть в соответствии с ниже упомянутым.
calculateGuests('I think 5 guests') === 5
calculateGuests('Big company of 15 dudes') === 15
calculateGuests('5') === 5
calculateGuests('alone') === 'not a number'
calculateGuests('0') === 'not a number'
calculateGuests('Hello, 9.75 people') === 9
calculateGuests('There will be 7 or 9 guys') === 7
calculateGuests('hello cat walks on my keyboard ksadjfhskaj12.34kasdfhsjk') === 12



я написала такую функцию:
function calculateGuests(guestsInput) {
  let result = '';
  // let b = guestsInput.replace(/[^.+\d]/g, ' ');
  // let c = Math.trunc(b);
  // console.log(c);
  for (let i = 0; i < guestsInput.length; i++) {
    if (+guestsInput[i] > 0) {
      result += guestsInput[i];
    }
  }

  if (+result > 0) {
    return +result;
  }

  return 'not a number';
}

console.log(calculateGuests('fs 4 5'));


проблема вот в чем:
1. возвращает абсолютно все, не первое входное число.
2. проблемы с округлением числа(если в строке 9.15, должно возвращать 9)
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
+str.match(/\d+/) || 'not a number'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽
07 мар. 2021, в 15:48
300000 руб./за проект
07 мар. 2021, в 15:26
7000 руб./за проект
07 мар. 2021, в 15:07
20000 руб./за проект