【问题标题】:How to reverse strings in js without using methods如何在不使用方法的情况下反转js中的字符串
【发布时间】:2016-03-04 10:49:42
【问题描述】:

如果不使用split reverse和join函数,怎么会做这样的事情?

给定的问题:反转字符串中的单词示例输入:“Hello World”示例输出:“World Hello”

<script>
  var newString = ""; 
  var theString = prompt("Enter a Phrase that you would like to reverse (Ex. Hello world)"); 

  newString = theString.split(" ").reverse().join(" ")


  document.write(newString);
</script>

我可以使用内置方法来实现它。但问题要求只使用使用

  • 数组
  • 子字符串
  • charAt()

那我该怎么办呢?

【问题讨论】:

  • 你可以使用 indexOf() 吗?
  • 也许你应该发布你的方法,你已经尝试过。
  • 为什么不考虑如何编写函数 split/reverse/join?
  • 好的,2秒,我写个小例子回答
  • @ViacheslavVedenin 抱歉,这是个错误。我对此还是陌生的。很抱歉给您带来不便

标签: javascript arrays substring charat


【解决方案1】:

好的,所以您可以使用 charAt 来查找单词之间的空格。当您知道空格在哪里时,您可以使用子字符串来隔离各个单词并将它们存储在变量中。然后你可以移动它们并将它们重新组合在一起。举个例子:

var string = "Hello World",
    words = [],
    reversedString="",
    i;

for (i=0; i<string.length; i++) {
  if (string.charAt(i) === " ") {
    words.push(string.substring(0, i));
    words.push(string.substring(i));
  }
}

for (i=words.length-1; i>=0; i--) {
  reversedString += words[i];
}

请注意,这只是一个简单(未经测试)的示例,仅适用于包含两个单词的字符串。如果你想让它更多地工作,你需要改变围绕子字符串的逻辑。希望对您有所帮助!

编辑:刚刚注意到我没有在末尾反转字符串,代码已更新。

以下是一些参考资料,以备不时之需: substring charAt

【讨论】:

  • 谢谢,不胜感激
  • 对不起,这不是针对您,只是针对谁。在没有解释原因的情况下对答案投反对票是没有帮助的。投反对票的人能否让我知道为什么以及他们认为答案可以改进的方式。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
相关资源
最近更新 更多