使用'extend'复制对象会将整数属性转换为字符串

时间:2012-03-20 18:13:29

标签: jquery

我有一个对象:

var seriesOptions = {
y: parseFloat($(this).find('y').text()).toFixed(2),
color: colors[index],
level : dlevel
};

我通过读取XML树结构来解析和分配值:

<series> <!-- $this--><y>55.34</y></series>

在代码下方,我制作了一个对象的副本

series = $.extend(true, {}, seriesOptions);

我面临的问题是“y”属性从55.34转换为“55.34”(转换为字符串类型),这使我的代码表现错误。有没有办法可以将seriesOptions.y复制到series.y作为整数本身?

3 个答案:

答案 0 :(得分:2)

.toFixed(2)返回一个字符串,而不是数字。

答案 1 :(得分:1)

您可以使用

Math.round(parseFloat($(this).find('y').text())*100)/100

而不是

parseFloat($(this).find('y').text()).toFixed(2)

您的'y'将是number,而不是string

答案 2 :(得分:0)

由于toFixed()返回string,您可以在之后说parseFloat(),也可以从将字符串自动转换为数字的操作开始。