Javascript 反转整个字符串,同时保持空格在同一位置
这是我尝试过的代码。如果我们输入“我们是农民!”它应该返回“!s rem raferaw”,但是我的代码返回“!s remr aferaeW”Javascript 反转整个字符串,同时保持空格在同一位置,javascript,arrays,for-loop,reverse,Javascript,Arrays,For Loop,Reverse,这是我尝试过的代码。如果我们输入“我们是农民!”它应该返回“!s rem raferaw”,但是我的代码返回“!s remr aferaeW” 功能反转(输入){ var array1=[]; var array2=[]; var nWord; 对于(变量i=0;i
功能反转(输入){
var array1=[];
var array2=[];
var nWord;
对于(变量i=0;i=0;i--){
阵列2.拼接(空格2[i],1);
}
控制台日志(array2);
nWord=array2.join(“”);
控制台日志(nWord);
var array3=[];
对于(变量i=0;i=0;i=i-1){
阵列3.拼接(空格[i],0,”);
}
控制台日志(array3);
var anWord=array3.join(“”);
返回一个单词;
}
var input=“我们是农民!”;
反转(输入);
首先,我将输入的每个字母推入“array1”的数组中。然后我为“array1”的空间的索引创建了一个数组,称为“spaces”
那么“array2”是一个反向排列的“array1”数组
然后“spaces2”是“array2”的索引数组,然后我使用for循环来拼接array2中的空格。然后把“nWord”和“array2”组合成一个新词
然后“array3”是一个包含所有nWord字母的数组,我使用了一个反向for循环,尝试将空格输入到“array3”中,并使用“spaces”数组的索引。不幸的是,它没有返回“!s rem raferaw”,而是返回“!s remr aferaeW”
我想知道如何使用“spaces”数组的索引在“array3”中的索引2和7处创建空间 您只需要做以下更改
//for (var i = spaces.length - 1; i >=0; i = i - 1) {
// array3.splice(spaces[i], 0, " ");
//}
for (var i = 0; i < spaces.length; i = i + 1) {
array3.splice(spaces[i], 0, " ");
}
//for(var i=spaces.length-1;i>=0;i=i-1){
//阵列3.拼接(空格[i],0,”);
//}
对于(变量i=0;i
您正在反向读取空格数组,但正如问题所述,空格应该位于同一位置。从头到尾的阅读解决了这个问题
功能反转(输入){
var array1=[];
var array2=[];
var nWord;
对于(变量i=0;i=0;i--){
阵列2.拼接(空格2[i],1);
}
控制台日志(array2);
nWord=array2.join(“”);
控制台日志(nWord);
var array3=[];
对于(变量i=0;i=0;i=i-1){
//阵列3.拼接(空格[i],0,”);
//}
对于(变量i=0;i 反转(输入)代码>也可以将代码最小化很多。要将字符串转换为字符数组,可以使用string.split(“”)
。您可以通过array2.join(“”).split(“”).join(“”)删除空格,而无需使用spaces2数组。最后,如果你能接受这个答案,那就太好了:)
//for (var i = spaces.length - 1; i >=0; i = i - 1) {
// array3.splice(spaces[i], 0, " ");
//}
for (var i = 0; i < spaces.length; i = i + 1) {
array3.splice(spaces[i], 0, " ");
}