在 Javascript 中反转句子并以相反的顺序打印每个单词 [closed]

Reverse a sentence and print each word in reverse order in Javascript [closed]

提问人:varsha Das 提问时间:12/4/2015 最后编辑:Jamie Eltringhamvarsha Das 更新时间:12/4/2015 访问量:18469

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

7年前关闭。

我正在制作一个 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>
JavaScript的

评论

0赞 Pramod Karandikar 12/4/2015
分享你到目前为止尝试过的东西。
1赞 Jacob George 12/4/2015
stackoverflow.com/help/how-to-ask
0赞 vard 12/4/2015
对于这篇文章的编辑冲突和他的答案:由于非中性字符串,问题和所有这些答案都通过 LQP 审查队列,这就是我将其编辑掉的原因。
0赞 guest271314 12/4/2015
@vard “我爱我的国家” 显得中立 , 这里 .“我爱我的猫”也会被认为是非中性的吗?
1赞 vard 12/4/2015
@guest271314 取决于你如何看待它,但无论如何它并不真正相关 - 因为这里的问答都被认为是 LQP,所以我用一个小改动修复了它们,这样它们就不会像这样出现在队列中。

答:

1赞 gurvinder372 12/4/2015 #1

试试这个代码

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" ) );

评论

0赞 varsha Das 12/4/2015
谢谢你,先生。。。它正在工作
0赞 gurvinder372 12/4/2015
@varshaDas欢迎您,请不要忘记投票并选择答案。
2赞 guest271314 12/4/2015 #2

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

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


删除 ; 不是一个函数;在每次迭代后添加以下内部循环以在输出中包含标记,以在 中输入的单词后面放置换行符。例如,尝试在 stacksnippets 输入“我爱我的国家”()j = x[i].length().lengthdocument.write("<br>")for<br>ihtmlpromptprompt()

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>")
}

评论

0赞 guest271314 12/4/2015
@varshaDas 查看更新后的帖子
1赞 Ramanlfc 12/4/2015 #3
var str  = "SAMPLE STRING";

var arr = str.split(" ");

arr.reverse();

str = arr.join(" ");

评论

0赞 varsha Das 12/4/2015
是的,它正在工作,但我想用新行打印每个单词
0赞 Ramanlfc 12/4/2015
@varshaDas在这种情况下,只需在反转后使用 for 循环并打印每个元素arr
0赞 Jacob George 12/4/2015 #4
a = "SAMPLE STRING"
a.split(" ").reverse().forEach(function(element) {
    document.writeln(element);
    document.write('<br />')  
}) 

输出:

STRING 
SAMPLE

JSFiddle

评论

0赞 varsha Das 12/4/2015
感谢您的代码,但我想将每个单词打印成新行......怎么做?
0赞 Jacob George 12/4/2015
@varshaDas我已经更新了所需输出的代码