隐式类型变量的javascript问题

时间:2011-08-29 18:57:23

标签: javascript variables typed

原谅这个新手问题(Javascript新手!)。

在一个html页面中,我有一组带有名称和数字的图像:img1 img2 img3 ... img12 ... 还有一个JS函数,我需要从(例如) img5 迭代到最后的img。

如果我写这个:

function iterateImg(objImgID) {var imgNum = objImgID.replace("img","");
    for (i=imgNum+1;i<20;i++)
    .../...

变量“i”被视为字符串,如果传递的对象的ID是img5,则i + 1接收值“51”。

当然我仍然可以从1迭代到n并且只在i的值达到6时执行所需的任务,但这将是一个难看的修复。

我该如何解决这个问题?在将其用作种子之前,如何创建将被视为整数的变量? 此外,你会推荐什么作为最佳做法?

4 个答案:

答案 0 :(得分:1)

var imgNum = Number(objImgID.replace("img",""));

那就行了。

或者更好(因为我喜欢正则表达式)

var imgNum = Number(objImgID.match(/[0-9]+/));

答案 1 :(得分:1)

使用parseInt将字符串转换为数字

var imgNum = parseInt(objImgID.replace("img", ""));

答案 2 :(得分:0)

有几种方法可以强制JavaScript将其转换为数字

  • parseInt(x, 10) - 10是数字的基础
  • x - 0 - 减去仅适用于数字
  • x * 1 - 倍增

答案 3 :(得分:0)

var imgNum = parseInt(objImgID.replace("img",""), 10);

现在当你执行var i=imgNum+1时,它将执行2个整数的添加。