【发布时间】:2021-12-05 21:49:23
【问题描述】:
我刚刚加入 Stack Overflow,这是我的第一篇文章,所以如果我做错了什么,请随时告诉我。
我面临一个挑战,即创建一个接受字符串并调用另一个给定函数的函数,该函数交换索引直到字符串向后返回。
我已经做到了:
//given function
function swap(str, first, last){
str = str.split('');
let firstIndex = str[first];
str[first] = str[last];
str[last] = firstIndex;
str = str.join("").toString()
return str;
}
//my function
let word = "Hello"
function reverseSwap(str) {
let result = ""
for (let i = 0; i < str.length/2; i++) {
result += swap(str, i, str.length -1 - i);
}
return result;
}
console.log(reverseSwap(word))
然而,这会返回“oellHHlleoHello”,因为每次迭代都会交换原始字符串中的索引,然后进行连接。是否有可能在第二次迭代时让循环从前一次迭代的结果中进行迭代,从而发生以下情况?:
第一次迭代的结果:swap(word, 0, 4) 返回 "oellH"
第二次迭代使用“oellH”而不是“Hello”来交换(1, 3),它返回“olleH”
然后,swap(2,2) 不会改变任何东西。
【问题讨论】:
-
let result = ""->let result = str和result += swap(str, i, str.length -1 - i);->result = swap(result, i, str.length -1 - i);
标签: javascript loops