Insanus
@Insanus

Как пофиксить баг?

Есть код он расставляет пробелы в числах и выводит это число например если вести число 35000 то он выведет 35 000, баг заключается в том что если вести число больше мильон или сам мильон то он выведет пустую строку как это пиксить
function putSpacesNumber(number) {
    let numbString = `${number}`,
        result = "";
    if (numbString.length > 4) {

        if (numbString.length % 3 == 0) {
            for (let i = 0; i <= numbString.length - 1; i++) {
                if (i % 3 == 0 && i != 0) {
                    result += ` ${numbString[i]}`;
                } else {
                    result += numbString[i];
                }
            }
        } else {
            putSpacesNumber(`0${numbString}`);
        }

        if (result[0] == 0) {
            resultArr = result.split('');

            for (let i = 0; i <= resultArr.length - 1; i++) {
                if (resultArr[i] == 0) {
                    resultArr[i] = "";
                } else {
                    break;
                }
            }
            result = resultArr.join("");
        }
    }
    
    return result;
}
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
Simkav
@Simkav
function putSpacesNumber(number) {
  if (typeof number !== 'number') {
    throw new TypeError('Argument must be a number');
  }
  if (number < 1000) {
    return number;
  }
  const arr = number.toString().split('');
  const result = [];
  const lengthdivineby3 = arr.length % 3;
  if (lengthdivineby3) {
    result.push(arr.slice(0, lengthdivineby3).join(''));
  }
  for (let i = lengthdivineby3; i < arr.length; i += 3) {
    result.push(' ', arr.slice(i, i + 3).join(''));
  }
  return result.join('').trim();
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы