У меня есть строка чисел, когда я делаю 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
Как я могу получить все цифры?
Спасибо
Используя 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);
.map(parseFloat)
не так ли? (В отличие от .map(parseInt)
, который не работает правильно.)
Вы можете сначала разделить строку на "," с помощью функции split()
а затем применить parseFloat()
.
Сначала вам нужно преобразовать его в массив строк, затем вы можете разобрать каждый из них по отдельности. Что-то вроде этого:
var str = svg.getAttribute("d");
var strNums = str.split(',');
var nums = strNums.map(function (num) {
return parseFloat(num);
});
const numArray = thatStringOfNumbers.split(',').map((num) => parseFloat(num))