Javascript 如何递增计数器并将结果附加到字符串以返回对象名?

Javascript 如何递增计数器并将结果附加到字符串以返回对象名?,javascript,Javascript,我正在尝试开发一个web应用程序,它是一个打鼓入门。 课程以JPG图像的形式显示,并附带可播放的音频曲目。 我希望我的“下一步”按钮增加一个计数器以加载下一课。课程标题、分数和曲目位于名为lesson1(“标题”、“分数”等),lesson2(“标题”等)的对象数组中。所以我需要在课后更改数字。我正在尝试,但它不起作用。你能帮忙吗 p = integer.valueOf(localStorage.lessonNGS); p = p + 1; n = string.valueOf(p); loca

我正在尝试开发一个web应用程序,它是一个打鼓入门。 课程以JPG图像的形式显示,并附带可播放的音频曲目。 我希望我的“下一步”按钮增加一个计数器以加载下一课。课程标题、分数和曲目位于名为
lesson1(“标题”、“分数”等)
lesson2(“标题”等)
的对象数组中。所以我需要在课后更改数字。我正在尝试,但它不起作用。你能帮忙吗

p = integer.valueOf(localStorage.lessonNGS);
p = p + 1;
n = string.valueOf(p);
localStorage.setItem("lessonNGS", n);
var lesson = "lesson" + localStorage.lessonNGS;
注二:

  • 使用
    parseInt
    将字符串解析为int
  • 您不需要转换为字符串,javascript可以在存储到
    localStorage
    时处理转换,也可以在将整数连接到“lesson”字符串时处理转换
  • 此代码应适用于:

    p = parseInt(localStorage.lessonNGS, 10);
    p = p + 1;
    localStorage.setItem("lessonNGS", p);
    var lesson = "lesson" + localStorage.lessonNGS;
    
    您应该使用and
    parseInt

    var p = parseInt(localStorage.getItem('lessonNGS'), 10) || 0;
    ++ p;
    localStorage.setItem('lessonNGS', p);
    

    标题应该描述实际问题,而不是你解决问题时的经验。试着在问题标题中解释你的问题是关于什么的。当前的标题没有告诉读者任何事情,大多数人会跳过阅读问题。查看你的来源。构建字符串时不要使用
    eval
    <代码>未捕获引用错误:lessonundefined未定义是您页面上的错误。将修改问题标题。谢谢你关于评估的建议。我以前读过这篇文章,但这似乎是我能够填充这些字符串的唯一方法。你确定
    localStorage.lessongs
    在所有浏览器中都可以访问吗?它在chrome中工作,但我找不到任何关于它的东西。parseInt应该始终包含一个基数,例如parseInt(foo,10)。@Louy-
    localStorage
    是HTML5的一部分,它应该在所有支持它的浏览器上都可用。我的意思是
    localStorage.Lessongs
    vs
    localStorage.getItem('Lessongs'))
    @djechlin-可以省略
    基数
    参数,在这种情况下,Javascript将根据字符串的内容做出一些假设(例如,如果它以0x开头,或以零开头,等等),这是可行的。非常感谢。我不知道| | 0;你在干什么?你能告诉我或者告诉我去哪里看吗?这是一个退路。因此,如果
    localStorage.getItem('lessonNGS')
    还不存在(
    null
    undefined
    ),它将返回到
    0