【问题标题】:Reverse a sentence and print each word in reverse order in Javascript [closed]反转一个句子并在Javascript中以相反的顺序打印每个单词[关闭]
【发布时间】:2015-12-04 08:14:09
【问题描述】:

我正在制作一个 JavaScript 程序,如果用户输入诸如

之类的字符串
"i love my country"

输出将产生:

country
my
love
i

我尝试过使用split 函数,但没有得到所需的输出。

<script language="javascript">
    var n, x, i, j;
    rev = "";
    n = window.prompt("enter any string");
    x = n.split(" ");
    for (i = 0; i < x.length; i++) {
        for (j = x[i].length() - 1; j >= 0; j--) {
            document.writeln(x[i].charAt(j));
            document.write(rev);
        }
    }
</script>

【问题讨论】:

  • 分享你到目前为止所尝试的。
  • 对于这篇文章和他的答案的编辑冲突:由于非中性字符串,问题和所有这些答案都来自 LQP 审查队列,这就是我编辑它的原因。
  • @vard "我爱我的国家" 在这里显得中立。 “我爱我的猫”也会被认为是非中立的吗?
  • @guest271314 取决于您如何看待它,但无论如何它并不真正相关 - 因为这里的 q&a 都被认为是 LQP 我修复了它们,所以它们不会像这样出现在队列中所以。

标签: javascript


【解决方案1】:

尝试使用Array.prototype.reverse(),Array.prototype.join()

var str = "I LOVE MY COUNTRY";
console.log(str.split(/\s/).reverse().join(" "));

在j = x[i].length() 处删除(); .length 不是函数;在 i 的每次迭代后,在内部 for 循环下方添加 document.write("&lt;br&gt;") 以在输出中包含 &lt;br&gt; 标记,以便在 html 中输入的单词后放置换行符 prompt 。例如,尝试在 stacksn-ps 的 prompt() 输入“我爱我的国家”

var n, x, i, j;
rev = "";
n = window.prompt("enter any string");
x = n.split(" ");
for (i = 0; i < x.length; i++) {
  for (j = x[i].length - 1; j >= 0; j--) {
    document.writeln(x[i].charAt(j));
  }
  document.write("<br>")
}

【讨论】:

  • @varshaDas 查看更新后的帖子
【解决方案2】:

试试这个代码

var str = "SAMPLE STRING";
alert( str.split( "\\s+" ).reverse.join ( " " ) );
alert( str.split( " " ).reverse.join ( " " ) );

既然要换行打印

var str = "SAMPLE STRING";
alert( str.split( " " ).reverse.join ( "\n" ) );

【讨论】:

  • 谢谢你,先生......它正在工作
  • @varshaDas 欢迎您,请不要忘记投票并选择答案。
【解决方案3】:
var str  = "SAMPLE STRING";

var arr = str.split(" ");

arr.reverse();

str = arr.join(" ");

【讨论】:

  • 是的,它正在工作,但我想在新行中打印每个单词
  • @varshaDas 在这种情况下,只需在反向后在 arr 上使用 for 循环并打印每个元素
【解决方案4】:
a = "SAMPLE STRING"
a.split(" ").reverse().forEach(function(element) {
    document.writeln(element);
    document.write('<br />')  
}) 

输出:

STRING 
SAMPLE

JSFiddle

【讨论】:

  • 感谢代码,但我想在新行中打印每个单词....怎么做?
  • @varshaDas 我已经更新了所需输出的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 2016-02-18
  • 2021-09-02
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
相关资源
最近更新 更多