Задать вопрос
@anmkh

Как отображать число с пробелом?

Есть код, который при клике по инпуту берет его дата атрибут и плюсует к основной цене
Так вот, все нормально работает до тех пор пока цена будет без пробела. (20000). Есть у кого мысли как сделать чтобы цену брать с пробелом (20 000) и плюсовать к ней? Сейчас нули отсекаются и берется только цена до пробела

function calcPrice(elem, startPrice) {
    // const inputWrapper = document.querySelector('.cart-js');
    const inputItems = elem.querySelectorAll(".card-option");
    const price = elem.querySelector("[data-total]");
    price.dataset.total = parseInt(startPrice);
    let currentPrice = parseInt(startPrice);

    inputItems.forEach(function (item) {
        const priceEl = item.querySelector("[data-price]");
        // const price = document.querySelector('[data-total]');
        if (priceEl.checked) {
            currentPrice += parseInt(priceEl.dataset.price);
            const total = (price.dataset.total = currentPrice);
        }
    });
    // console.log(totalPrice)
}
  • Вопрос задан
  • 562 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
@LJ322
price.dataset.total = parseInt(startPrice.replaceAll(' ', ''));
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@WAR_VIK
Вот так можно:
function display_with_spaces(num) {
      let str = String(num);
      let left = str.length % 3;
      let res = '';
      let ind = 0;
      if(left > 0) {
             res = str.substr(ind, left) + ' ';
             ind += left;
             while(ind < str.length) {
                    res += str.substr(ind, 3);
                    if(str.length - ind > 3) res = res + ' ';
                    ind += 3;
             }
      }
      else {
             while(ind < str.length) {
                   res += str.substr(ind, 3);
                   if(str.length - ind > 3) res = res + ' ';
                   ind += 3;
            }
      }
      return res;
}
Ответ написан
Комментировать
NikFaraday
@NikFaraday
Student full-stack Developer
Так вот, все нормально работает до тех пор пока цена будет без пробела.


Вы вкурсе как работают числа? Если вы ставите пробел, тогда ваше число уже не является числом, а является строкой

Вы должны работать с числами в оригинальном виде, т.е. без пробелов, таких стандартнов придерживаются программисты. При выводе вы можете их выводить как хотите, хоть на шахматной доске, но изначально вы должны работать с числами в таком виде, как они есть
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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