【发布时间】:2023-02-01 14:12:53
【问题描述】:
我有一个场景,我需要反转字符串中的子字符串。 Javascript 字符串是不可变的,传统的字符串交换技术在这里不起作用。所以我决定使用string.split('')和string.join('')方法来获得解决方案。请检查下面的代码。
function reverseAString(str, startIndex, endIndex) {
let left = startIndex;
let right = endIndex;
let output = str;
while(left < right) {
const arr = output.split('');
let temp = arr[left]
arr[left] = arr[right]
arr[right] = temp;
output = arr.join('');
left += 1;
right -= 1;
}
return output
}
这按预期工作。但是有没有更好的方法来反转子串,因为上述解决方案不是实现反转的最佳方法?
【问题讨论】:
-
javascript 有一个reverse 方法可以为您完成。
-
嗨@Layhout。感谢您及时的回复。我的问题不是数组,而是字符串中的子字符串。例如,让我们以字符串“hello world!”为例。我的方案是反转子字符串“hello”。所以输出应该像“olleh world!”。我在问题中发布的解决方案适用于该场景。但这不是最优的。
-
好吧,反转字符串的最佳方法是将其拆分为一个数组,将其反转并将其连接回去。或者另一种不太理想的方法是声明一个新的字符串变量,创建一个反向循环并在子字符串上调用 charAt 方法以连接到新的字符串变量。
-
是的,@Layhout。就我而言,我正在做同样的事情,但多次进行字符串拆分。但是对于您的解决方案,仅将字符串拆分一次就足够了。同意。
标签: javascript string reverse