Javascript 在不使用.Reverse()的情况下反转字符串中的单词(不是字母)
我正在处理的问题要求我编写一个函数reverseMessage,它接受一个字符串消息并颠倒单词的顺序 我第一次提出的答案很有效,但显然不符合此任务的要求:Javascript 在不使用.Reverse()的情况下反转字符串中的单词(不是字母),javascript,arrays,string,Javascript,Arrays,String,我正在处理的问题要求我编写一个函数reverseMessage,它接受一个字符串消息并颠倒单词的顺序 我第一次提出的答案很有效,但显然不符合此任务的要求: function reverseMessage(string) { return string.split(" ").reverse().join(" "); } 例如: var string = "reversed are string your in words the now" var results = "now the w
function reverseMessage(string) {
return string.split(" ").reverse().join(" ");
}
例如:
var string = "reversed are string your in words the now"
var results = "now the words in your string are reversed"
新解决方案:
我想把这个字符串分割成一个数组,然后在数组中循环,将第一个索引与最后一个索引交换,第二个索引与第二个索引交换,第三个索引与第三个索引与最后一个索引交换,等等。。。直到我在中间相遇。
我正在努力使以下两种不同的功能发挥作用:
function reverseMessage(string) {
var array = string.split(" ");
//loop through array and replace first index with last index, second
index with second to last index, third index with third to last index, etc
for (var i = 0; i < array.length/2; i++) {
for (var j = (array.length-1); j > array.length/2; j--) {
array[i] = array[j];
array[j] = array[i];
messageSplit.join(",");
}
};
function reverseMessage2(string) {
var array = string.split(" ");
var newArray = []
for (var i = 0; i < array.length/2; i++) {
newArray.unshift(array[i]++);
newArray.join(",");
return newArray;
}
};
我走对了吗?试试这个
function reverseMessage(string) {
var array = string.split(" ");
var result="";
for (var i = array.length-1; i >=0; i--) {
result+=array[i]+" ";
}
console.log(result);
};
function reverseMessage( str ) {
var arrStr = [];
var temp ="";
for(var i = 0 ; i < str.length ; i++)
{
if(str[i] === " ")
{
arrStr.push(temp);
temp="";
}
else
{
temp += str[i];
}
}
if(temp.length >= 0)
{
arrStr.push(temp);
}
var result = "";
for(var x=arrStr.length-1 ; x >=0 ; x--)
{
result += " "+arrStr[x];
}
return result;
}
console.log(reverseMessage("I am here"));
所以,在您的reverseMessage函数中,您试图将变量替换为您正在执行的操作 数组[i]=数组[j]; 数组[j]=数组[i] 也就是说,数组[i]=array[j],所以让我们假设array[i]=This和array[j]=That,根据你的代码,array[i]将是那个,array[j]也将是那个,所以你可以尝试这样的方法:
function reverseMessage(string) {
var array = string.split(" ");
//loop through array and replace first index with last index, second
//index with second to last index, third index with third to last index, etc
for (var i = 0,j=(array.length)-1; i < array.length/2; i++) {
temp=array[i]
array[i] = array[j];
array[j]=array[i]
array[j] = temp; j--;}
console.log(array.join(" "));
}; reverseMessage("find you will pain only go you recordings security the into if");
您要做的是将单词message拆分为单独的字符串,将它们反转,然后将它们添加到一起,这将在适当的位置反转它们。试一试
function reverseMessage(message){
var reversedMessage = ''; //A string to hold the reversed message
var words = message.split(' ');
for(var i =0; i< words.length; i++){
reversedMessage += reverse(words[i]) + " ";// add the reversed word to the reversed message, with a space at the end so the words dont touch
}
return reversedMessage
}
//A helper function that reverses a string
function reverse(s) {
var o = '';
for (var i = s.length - 1; i >= 0; i--)
o += s[i];
return o;
}
资料来源:嗯,总得有人来做: 功能转速{ var a=s.split/, l=a.长度; i=l/2 | 0; 而i-a.patchii,1,a.patchil-1-i,1,a[i][0]; 返回a.join“”; } 文件.文字'01 2 3 4 5 6 7 8 9' 使用Array.split、Array.pop、Array.push和String.substr: var flip=functionstr{ var res=,sp=,arr=str.splitsp; 而arr.length res+=arr.pop+sp; 返回res.substr0,res.length-1;//删除最后一个空格 };
现在,你的字串是什么;数组[i]=数组[j];数组[j]=数组[i];不起作用,因为您刚刚用数组[j]替换了数组[i]!是的,我想-只是不知道如何正确地写它-我想我会写下一些我希望发生的事情的想法,希望其他人能看到我试图完成的事情。哇,这比我试图做的要简单得多lol-谢谢Psylogic这在反转字符串中的所有内容时很有帮助。我只是想把这些话颠倒过来。不过,谢谢你的回答。这些词会颠倒过来,是的,但这些词的字母不会。因此,如果我的字符串before='find you will pain only go you recordings security in the if',那么before将是='if in the security recordings you go only pain only pain will you find find'---你的解决方案是这样的=dnif uoy lliw niap ylno og uoy sgnidrocer ytruces eht otni fi我试图放入一个更大的字符串,但效果不太好对于较短的字符串。示例----var message='find you will pain only go you recordings security into if'----results='recordings security into if find you will pain only go'----when它应该是='if in the security recordings you go only pain you find'.@xgrioux立即检查此项将帮助您解决方案不断使我的服务器崩溃字体哎呀,我错了。现在测试:请考虑编辑您的帖子,以添加更多的解释您的代码做什么,为什么它会解决这个问题。即使答案是有效的,但它大多只包含代码,这通常不会帮助OP理解他们的问题。
with `pop()` ;)
function reverseMessage(string) {
var array = string.split(" ");
var result="";
while (array.length > 0) {
result += array.pop()+" ";
}
console.log(result);
};