使用javascript在空格后反转数组
我有一个数组,我想像 [I','l','o','v','e','e','a','r','t','h' 我想这样把它倒过来 [“I”、“e”、“v”、“o”、“l”、“h”、“t”、“r”、“a”、“e”]使用javascript在空格后反转数组,javascript,arrays,reverse,Javascript,Arrays,Reverse,我有一个数组,我想像 [I','l','o','v','e','e','a','r','t','h' 我想这样把它倒过来 [“I”、“e”、“v”、“o”、“l”、“h”、“t”、“r”、“a”、“e”] 问题是我可以使用array.slice().reverse()反转它但它会反转整个数组,我想在where is space之后反转。好吧,一些脏的解决方案可能与此类似: var语句=['I',''l','o','v','e','e','a','r','t','h']; var reverse
问题是我可以使用
array.slice().reverse()反转它代码>但它会反转整个数组,我想在where is space之后反转。好吧,一些脏的解决方案可能与此类似:
var语句=['I',''l','o','v','e','e','a','r','t','h'];
var reversed=句子.join(“”).split(“”).map(word=>word.split(“”).reverse().join(“”)).join(“”).split(“”);
控制台日志(反向)代码>您可以将其设置为字符串,然后拆分和平面映射
const arr=['I',''l','o','v','e','e','a','r','t','h'];
常数res=arr
.加入(“”)
.拆分(“”)
.flatMap(e=>(e+“”).split(“”).reverse()
.切片(1);
控制台日志(res)代码>您可以采用递归方法收集子数组并反转此值
函数交换(数组,i=0,temp=[]){
if(i>=array.length | | array[i]==''){
温度forEach((v,j)=>数组[i-j-1]=v);
温度=[];
}否则{
温度推送(阵列[i]);
}
if(i>=array.length)返回数组;
返回交换(阵列,i+1,临时);
}
变量数组=['I',''l','o','v','e','e','a','r','t','h'];
log(交换(数组))代码>
.as console wrapper{max height:100%!important;top:0;}
您可以使用&逐个字母循环数组(避免创建多个临时数组):
var语句=['I',''l','o','v','e','e','a','r','t','h'];
var反向=句子。减少((acc,字母)=>{
如果(字母==''){
根据结果推送(信函);
acc.insertIndex=acc.result.length;
}否则{
根据结果拼接(根据插入索引,0,字母);
}
返回acc;
},{result:[],insertIndex:0});
console.log('reversed:',reversed.result)代码>首先拆分空格字符,然后将每个字符串拆分为字符并反转,然后合并整个字符串,怎么样?