Как я могу вернуть число из числа чисел?

1

У меня есть строка чисел, когда я делаю svg.getAttribute("d") в консоли:

"-0.05990783410138251,0.13594470046082952, -0.06912442396313362,0.14976958525345618, -0.07603686635944701,0.15668202764976957, -0.08755760368663595,0.16589861751152069, -0.09677419354838718,0.16820276497695852, -0.10599078341013829,0.16820276497695852, [ CN00].12211981566820279,0.16820276497695852 -0.13594470046082957,0.16820276497695852, -0.14055299539170513,0.16820276497695852, -0.14516129032258068,0.16589861751152069, -0 +0,1474654377880184"

Я хочу, чтобы это было преобразовано в float, поэтому я сделал parseFloat (svg.getAttribute("d")), но все, что я получил, это первое число назад:

-0 +0,05990783410138251

Как я могу получить все цифры?

Спасибо

  • 0
    Вы не можете преобразовать строку числа s во множественном числе в число с плавающей точкой в единственном числе, если вы не выберете одно из чисел и не проигнорируете остальные. Если вы хотите получить массив чисел, отредактируйте вопрос, чтобы сказать так.
Теги:
parsefloat
int

4 ответа

2
Лучший ответ

Используя String.prototype.split() и Array.prototype.map() вы можете получить массив значений float следующим образом:

const values = '-0.05990783410138251,0.13594470046082952,-0.06912442396313362,0.14976958525345618,-0.07603686635944701,0.15668202764976957,-0.08755760368663595,0.16589861751152069,-0.09677419354838718,0.16820276497695852,-0.10599078341013829,0.16820276497695852,-0.12211981566820279,0.16820276497695852,-0.13594470046082957,0.16820276497695852,-0.14055299539170513,0.16820276497695852,-0.14516129032258068,0.16589861751152069,-0.1474654377880184';

const floats = values.split(',').map(parseFloat);

console.log(floats);
  • 1
    Можно с уверенностью сказать, что .map(parseFloat) не так ли? (В отличие от .map(parseInt) , который не работает правильно.)
  • 0
    @nnnnnn Да, ты прав. Обновление ответа.
1

Вы можете сначала разделить строку на "," с помощью функции split() а затем применить parseFloat().

0

Сначала вам нужно преобразовать его в массив строк, затем вы можете разобрать каждый из них по отдельности. Что-то вроде этого:

var str = svg.getAttribute("d");
var strNums = str.split(',');
var nums = strNums.map(function (num) {
    return parseFloat(num);
});
0
const numArray = thatStringOfNumbers.split(',').map((num) => parseFloat(num))
  • 0
    Всегда давайте некоторые объяснения по поводу вашего ответа. В противном случае он будет считаться постом низкого качества и может быть удален.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню