C rh sup:Javascriptsup()不工作

我正在尝试编写一个接受字符串的脚本,每当有一个字母时,下一个数字都会被上标。为此,我将字符串拆分为一个数组并循环遍历它-每当我找到一个字母时,我都会在下一个数组元素上运行 sup()。

JS(简体)

var ec = "1s2 2s4".split("");
for (var i = 0; i < ec.length; i++) {
    if (ec[i].match(/[a-z]/i)) {
        ec[i + 1].sup();
    }
}

但是当我这样做时,我运行 sup()的数字不会发生任何事情。

JSfiddle:http://jsfiddle.net/yxj143az/7/

4

只是避免使用 sup,这里是如何做到这一点的一个简单的例子:

var ec = "1s2 2s4".split("");
for (var i = 0; i < ec.length; i++) {
    if (ec[i].match(/[a-z]/i)) {
        // I removed the call to sup, even though it is only deprecated
        // and has been for awhile it is still accessible. Feel free to
        // use it if you would like, i just opted not to use it.
        // The main issue with your code was this line because you weren't
        // assigning the value of your call to sup back to the original variable,
        // strings are immutable so calling on a function on them doesn't change
        // the string, it just returns the new value
        ec[i + 1] = '<sup>' + ec[i + 1] + '</sup>';
        // if you want to continue to use sup just uncomment this
        // ec[i + 1] = ec[i + 1].sup();
        // This is a big one that I overlooked too.
        // This is very important because when your regex matches you reach
        // ahead and modify the next value, you should really add some checks
        // around here to make sure you aren't going to run outside the bounds
        // of your array
        // Incrementing i here causes the next item in the loop to be skipped. 
        i++
    }
}
console.log(ec.join(''));

编辑 / 更新基于评论中的一些有效反馈,我回去并评论了答案,以说明我到底改变了什么以及为什么。非常感谢 @ IMSoP 向我指出这一点。

1

.sup() method不修改字符串,它接受一个字符串并返回一个新的字符串。

所以不只是运行它...

 ec[i + 1].sup();

...您需要将其结果分配回您的字符串...

 ec[i + 1] = ec[i + 1].sup();

但是,正如其他用户所指出的那样,该方法可能不应该再使用了,因为它被认为是“已弃用”,并且可能会被浏览器删除。幸运的是,它的替换非常简单,因为它所做的只是在字符串周围添加<sup></sup>,因此您可以重写没有它的行:

 ec[i + 1] = '<sup>' + ec[i + 1] + '</sup>';

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(400)
数组倒序输出:Javascript按时间倒序排序对象数组
下一篇

相关推荐

  • javascript开发桌面应用从入门到精通

    JavaScript是一种跨平台的脚本语言,可以用来开发桌面应用。它可以在浏览器中运行,也可以在服务器端运行,甚至可以用来开发桌面应用。…

    2023-03-12 12:03:42
    0 34 15
  • javascript可以跨平台吗优势与挑战。

    答:是的,javascript可以跨平台。它可以在多种操作系统和浏览器上运行,如Windows、Mac OS、Linux和Chrome、Firefox等。下面是一个简单的javascript代码示例,用于显示“Hello World”:…

    2023-04-24 12:52:30
    0 61 19
  • javascript权威:JavaScript的基本概念

    JavaScript 权威指的是 JavaScript 的标准,也就是 ECMAScript(ECMA-262)。它是由 ECMA 国际组织制定的一种语言标准,它定义了 JavaScript 语言的语法和行为,以及实现 JavaScript 的规范。…

    2023-02-08 09:10:25
    0 28 28
  • javascript对象:利用JavaScript对象实现复杂数据结构

    JavaScript对象是一种无序的集合数据类型,用于存储和检索信息。它由一系列键/值对组成,其中键是一个字符串,而值可以是任何有效的JavaScript数据类型,包括另一个对象。…

    2023-03-08 12:09:06
    0 39 22
  • javascript作用域理解全局作用域、函数作用域和块级作用域

    示例示例作用域指的是代码中定义变量和函数的范围,它决定了在何处可以访问到这些变量和函数。中有两种作用域:全局作用域和局部作用域。…

    2023-01-29 01:03:11
    0 61 97
  • javascript作用:如何利用JavaScript来创建强大的Web应用

    JavaScript是一种轻量级的编程语言,它可以用于创建动态的、交互式的网页和应用程序。它是一种客户端脚本语言,这意味着它可以在用户的浏览器中运行,而无需向服务器发送请求。…

    2023-05-02 11:23:28
    0 28 75
  • javascript的输出语句:使用JavaScript输出结果

    JavaScript的输出语句是指在网页中显示文本或其他内容的语句,常用的输出语句有document.write()、window.alert()和console.log()。…

    2023-05-14 13:12:22
    0 87 90
  • javascript返回上一页:返回上一页

    返回上一页可以使用 window.history.back() 方法。代码示例:…

    2023-08-06 05:44:54
    0 16 95

发表评论

登录 后才能评论

评论列表(87条)