Javascript 在不使用内置函数的情况下反转字符串JS中的单词

Javascript 在不使用内置函数的情况下反转字符串JS中的单词,javascript,join,reverse,string-split,Javascript,Join,Reverse,String Split,如果不使用拆分反向和联接函数,您将如何执行此操作 给出的问题是:颠倒字符串中的单词 示例输入:“Hello World” 示例输出:“世界你好” var newString=“”; var theString=prompt(“输入要反转的短语(例如Hello world)”; newString=theString.split(“”.reverse().join(“”) document.write(新闻字符串); 在数百万种不同的解决方案中,我能想到的最少的输入量包括使用lastIndexO

如果不使用拆分反向和联接函数,您将如何执行此操作

给出的问题是:颠倒字符串中的单词 示例输入:“Hello World” 示例输出:“世界你好”


var newString=“”;
var theString=prompt(“输入要反转的短语(例如Hello world)”;
newString=theString.split(“”.reverse().join(“”)
document.write(新闻字符串);

在数百万种不同的解决方案中,我能想到的最少的输入量包括使用
lastIndexOf
子字符串

var str = "The quick brown fox",
    reversed = "",
    idx;

while(true) {
    idx = str.lastIndexOf(" ")
    reversed = reversed + str.substring(idx).trim() + " "
    if (idx < 0) break;
    str = str.substring(0, idx)
}
reversed.trim()  # Oh, yes, trim too

您也可以尝试以下方式:

我想不出一个更短的解决方案

var newString=“”;
var theString=prompt(“输入要反转的短语(例如Hello world)”;
字符串.replace(/[^\s]*/g,函数(值){
新闻字符串=值+“”+新闻字符串;
});

document.write(新闻字符串)另一种反转字符串中单词的方法是使用堆栈数据结构。像这样:

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

var word = "";
var c;
var stack = [];
for (var i = 0, len = theString.length; i < len; i++) {
  c = theString[i];
  word += c;

  if (c == " " || i == (len-1)) {
      word = word.trim();
      stack.push(word);
      word = "";
  }  
}

while (s = stack.pop()) {    
    newString += s + " ";
}

console.log(newString);
var newString=“”;
var theString=prompt(“输入要反转的短语(例如Hello world)”;
var-word=“”;
var c;
var堆栈=[];
for(var i=0,len=string.length;i
数组可以像开箱即用的堆栈一样使用。堆栈是后进先出,这是你需要的

function reverseWords(str) {
    var word, words, reverse;

    words = str.match(/(?:\w+)/g);
    reverse = '';
    while(word = words.pop()) {
      reverse += word + ' ';
    }

    return reverse.trim();
}

reverseWords('hello world');
或者使用调用堆栈作为堆栈:

function reverseWords(str) {
  var result = '';
  (function readWord(i = 0) {
    var word = '';
    if(i > str.length) {
        return '';
    }    
    while(str[i] !== ' ' && i < str.length) {
      word += str[i];
      i++;
    }    
    readWord(++i); // Skip over delimiter.
    result += word + ' ';    
  }());
  return result.trim();
}

reverseWords('hello world');
function reverseewords(str){
var结果=“”;
(函数readWord(i=0){
var-word='';
如果(i>str.length){
返回“”;
}    
while(str[i]!=''&&i
在javascript中最简单的方法。此处replace()具有/,/g它将替换从字符串到空格的所有逗号

    var msg = 'Hello world I am Programmer';
    var newstr = msg.split(" ").reverse().join().replace(/,/g, ' ');
    console.log(newstr)

)

可能的重复,而不是基于评论的重复。限制使用这些方法。这里有一些钉子。去找一把螺丝刀把它们放进去……所以你需要避免使用
split
reverse
?@Ben Aston是的,这是一个约束条件,你可以使用split+for循环+if语句。反向拆分会更好
function reverseWords(str) {
  var result = '';
  (function readWord(i = 0) {
    var word = '';
    if(i > str.length) {
        return '';
    }    
    while(str[i] !== ' ' && i < str.length) {
      word += str[i];
      i++;
    }    
    readWord(++i); // Skip over delimiter.
    result += word + ' ';    
  }());
  return result.trim();
}

reverseWords('hello world');
    var msg = 'Hello world I am Programmer';
    var newstr = msg.split(" ").reverse().join().replace(/,/g, ' ');
    console.log(newstr)