【问题标题】:How to reverse a name from prompt | String to Array reversed如何从提示中反转名称 |字符串到数组反转
【发布时间】:2011-06-30 00:57:14
【问题描述】:

我最近开始学习 Javascript,作为一个小挑战,我尝试创建一个程序,其中提示要求输入名称,然后程序反向打印名称。我的想法是这样的:

var name = prompt("What is your name?");
name = new Array(name.length);
name.reverse();
document.write(name);

这段代码有什么问题?

【问题讨论】:

  • 你丢失了name的原始内容;您只是用大小为name.length 的数组覆盖了它。

标签: javascript arrays string reverse


【解决方案1】:

将字符串转换为数组,反转,加入备份:

s.split('').reverse().join('');

【讨论】:

    【解决方案2】:

    首先,数组对字符串的字符一无所知。您只是在创建一个相同长度的空填充数组。

    将字符串转换为数组的正确方法是使用splice

    name = Array.prototype.slice.apply(name);
    

    slice 是一个数组方法,它返回数组的一部分。当您不传递任何参数时,它会克隆数组。方便的是,它适用于非数组并生成一个数组。

    apply 是一种在任意对象上调用函数的方法。它让我们可以在字符串上调用数组方法。

    【讨论】:

      【解决方案3】:
      var name = "yourname";
      var myFunction = function () {
      var s = name;
      return s.split('').reverse().join('');
      }
      myFunction();
      

      【讨论】:

      • 您应该为您的答案添加某种解释,而不仅仅是代码。问题是“这段代码有什么问题?”,所以添加一些文本也是 OP 所要求的。
      【解决方案4】:
          var fullName = prompt(" What is your full name"); 
          document.getElementById("fn").innerHTML = fullName.toUpperCase();
      
      
          document.getElementById("len").innerHTML = fullName.length;
      
      
      function back() {
      
          return fullName.split('').reverse().join('');
      }
      document.getElementById("back").innerHTML=back();
      

      【讨论】:

      • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。
      【解决方案5】:

      Reverse 不是官方的 String 对象方法。

      不过,您可以制作原型。

      http://www.bytemycode.com/snippets/snippet/400/

      【讨论】:

      • 他在Array上调用reverse方法
      • 这就是@needtoknow 在数组上调用 reverse 的原因
      猜你喜欢
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 2022-11-05
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多