@Neizvest

Почему NaN в строке?

Это код js, он переводит из одной еденицы измерения в другую, по клику на кнопку с id =“final” страбатывает функция finalF, для перевода нажимаем на кнопку где написана еденица измерени и на кнопку, где написана еденица в которую хотим перевести ( что-то типа 1 нажали на кнопку «см», получилось строка ( 1см ) и переводим в «мм», нажав на соответствующую кнопку, получаем 1сммм, в последствии просто очищаем от букв, и умножаем, так при нажатии на кнопку с «дм», переводим в «мм», выводится NaN мм, как это исправить?

spoiler
var text = document.getElementById("test");
var one = document.getElementById("one");
var two = document.getElementById("two");
var three = document.getElementById("three");
var four = document.getElementById("four");
var final = document.getElementById("final");
final.onclick = finalF;
one.onclick = oneF;
two.onclick = twoF;
three.onclick = threeF;
four.onclick = fourF;

function oneF() {

text.value += "мм";

}

function twoF() {

text.value += "см";

}

function threeF() {
text.value += "дм";
}

function fourF() {
text.value += "м";
}


function finalF () {

if (text.value == 0) {}


 else if (text.value.indexOf("см") !== -1) {

 var str = text.value.replace('сммм','');
var res = str * 10 + " мм";
text.value = res;
}


else if (text.value.indexOf("м") !== -1) {

   str = text.value.replace('ммм','');
 res = str * 1000 + " мм";
text.value = res;
}


else if (text.value.indexOf("дм") !== -1) {

   str = text.value.replace('дммм','');
 res = str * 100 + " мм";
text.value = res;
}

}


На всякий:
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
у вас в функции FinalF после text.value.replace(...) остаются пробелы в строке
замените replace



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


ЗЫ: исправил ошибки)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Yaroslavv
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
21 мая 2024, в 16:29
1500 руб./за проект
21 мая 2024, в 16:14
80000 руб./за проект