javascript - 如何在 JavaScript 中替换字符串中的特定字符?
问题描述
给定一个类似 的字符串aaabba
,我想要一个将a转换为b并将b转换为a的函数,返回bbbaab
.
我试过这个笨拙的:
var newa = [];
function swit(x) {
for (var i = 0; i < x.length; i++) {
if (x[i] === 'a') {
newa.push('b');
}
else if (x[i] === 'b') {
newa.push('a');
}
alert(newa);
}
}
swit("aaab");
在点击了很多警报后,最后,最后一个警报显示了预期的结果。但我希望它没有逗号,并且首先 - 不是经过多次迭代:
我还尝试了该string.replace()
方法 - 与for
-loop 结合使用:
function swit(x) {
for (var i = 0; i < x.length; i++) {
if (x[i] === 'a') {
x.replace('a', 'b');
}
else if (x[i] === 'b') {
x.replace('b', 'a');
}
alert(x);
}
}
swit("aaab");
但没有任何改变。为什么?
您能否告诉我出了什么问题以及如何获得所需的结果?
解决方案
最简单的方法是使用 将文本拆分为单个字符split
,然后通过简单地替换a => b
并再次映射字符数组b => a
,join
或者只是使用replace
'bbbaab'.split('').map(char => char === 'a' ? 'b' : 'a').join('');
'bbbaab'.replace(/a|b/g, (match) => match === 'a' ? 'b' : 'a');
function swap(str) {
return str.split('').map(char => char === 'a' ? 'b' : 'a').join('');
}
function swap2(str) {
return str.replace(/a|b/g, (match) => match === 'a' ? 'b' : 'a');
}
console.log(swap('bbbaab'));
console.log(swap2('bbbaab'));
推荐阅读
- angularjs - Angular,Chrome - 所有请求都停止了大约 450 毫秒
- python - 如何让 Python 应用程序与终端通信
- javascript - js函数中的css动画调用不起作用
- javascript - 如何在引导模式将其添加到主体以调整窗口滚动时获取填充右变量的值?
- php - 发送 smtp 邮件 laravel 不工作
- java - 登录 Facebook 后 Android webView 不回来?
- amazon-web-services - 捕获 S3 文件下载开始和结束时间以及其他详细信息
- azure - 如何通过 Azure DevOps 从 Azure 中删除存储帐户
- xamarin - 带有 Xamarin 应用程序的 VS2017 和 Win7 中的命名空间问题?
- java - Maven 无法使用 OpenJDK 11 找到 jaxb-api,即使它存在于存储库中