【发布时间】:2020-07-12 07:42:53
【问题描述】:
这是我尝试过的代码。如果我们输入“我们是农民!”它应该返回“!s rem raferaeW”但是我的代码返回“!s remr aferaeW”
function reverseStr(input){
var array1 = [];
var array2 = [];
var nWord;
for (var i = 0; i < input.length; i++) {
array1.push(input[i]);
}
var spaces = [];
for (var i = 0; i < array1.length; i++) {
if(array1[i] == " ") {
spaces.push(i);
}
}
console.log(array1);
console.log(spaces);
array2 = array1.slice().reverse();
var spaces2 = [];
for (var i = 0; i < array1.length; i++) {
if(array2[i] == " ") {
spaces2.push(i);
}
}
console.log(spaces2);
for (var i = spaces2.length - 1; i >=0; i--) {
array2.splice(spaces2[i], 1);
}
console.log(array2);
nWord = array2.join('');
console.log(nWord);
var array3 = [];
for (var i = 0; i < nWord.length; i++) {
array3.push(nWord[i]);
}
console.log(array3);
for (var i = spaces.length - 1; i >=0; i = i - 1) {
array3.splice(spaces[i], 0, " ");
}
console.log(array3);
var anWord = array3.join('');
return anWord;
}
var input = "We are farmers!";
reverseStr(input);
首先,我将输入的每个字母推入“array1”处的数组中。然后我为“array1”的空间索引创建了一个数组,称为“spaces”。
那么“array2”就是一个“array1”反转的数组。
然后“spaces2”是“array2”的索引数组,然后我使用 for 循环拼接出 array2 中的空格。那么“nWord”就是“array2”组合成一个新词。
然后“array3”是所有 nWord 字母的数组,我使用反向 for 循环尝试将空格输入“array3”并使用“spaces”数组的索引。不幸的是,它没有返回“!s rem raferaeW”,而是返回“!s remr aferaeW”。
我想知道如何使用“spaces”数组的索引在“array3”的索引 2 和 7 处创建空间。
【问题讨论】:
标签: javascript arrays for-loop reverse