gpt4 book ai didi

Javascript 将 NaN 字符串属性转换为可用数字

转载 作者:行者123 更新时间:2023-11-28 19:30:09 24 4
gpt4 key购买 nike

问题来了

在我的项目中的某个地方,我有一个 svg 容器,我必须在其中应用转换。转换只是一个“文本属性”,因此,我计算一个值,然后将其设置为我的 svg 属性。

我得到的值是一个“比例”值。它从 0.1 到 1+(0.x),最大值为 2。例如,这是我得到的值:

var scaleValue = "1.3000";

我这样把它作为“transform”属性:

myItem.setAttributeNS(null,"transform","scale("+scaleValue+")");

现在,svg 项目有一个名为“transform”的属性,其中包含带有值的比例。

稍后在我的代码中,我需要取回这个值!现在麻烦来了...我以这种方式取回值:

var transformString = myItem.getAttribute("transform");
var scale = transformString.substr((transformString.indexOf('(',transformString.indexOf(('scale('),0))+1),(transformString.indexOf((')',transformString.indexOf('scale(')))-1));
console.log(scale);

Console.log(scale) 给了我 1.3000...所以,我得到的值是好的,但是我将它作为字符串获取(我正在解析字符串...)

然后我需要用这个值做一些事情,比如在 mouseEvent 上:

var currentPositionX = (event.offsetX==undefined?event.layerX:event.offsetX)*scale;

所以,在这一点上,我需要将刻度设置为“ float ”或可以用来计算值的东西......每次我尝试这样做时,我都会收到此消息:

Unexpected NaN value ...

更新:

问题似乎出在我必须做的计算上。因此,第一个是获取鼠标偏移量:

var offsetX = event.offsetX==undefined?event.layerX:event.offsetX;

这给了我一个像“2048”这样的值,我在控制台中输出它,例如:

console.log(parseFloat(offsetX));

我得到了正确的值显示。后来我尝试这个:

var calculated = (parseFloat(offsetX))*(parseFloat(scale));

还有,当我输出这样的结果时:

console.log(calculated);

我得到“NaN”...

感谢您的帮助:)

最佳答案

您随时可以parseFloat将其作为字符串获取后:

scale = parseFloat(scale);

关于Javascript 将 NaN 字符串属性转换为可用数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26990886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com