在JS中将字符串字母转换为不同的字母
Convert string letters to different ones in JS
我有一个简单的 JS 任务我想不通,毕竟对我来说不是那么简单。
创建一个函数 'converter',以这种方式转换字母:
T -> C
C -> T
A -> D
X -> Y
函数接受带字母的字符串。应从字符串中删除所有不可转换的字母。
示例:
- converter('TTCCAAXX') -> 'CCTTDDYY'
- converter('TTGG') -> 'CC'
我试过这样的 -
function Converter(str) {
let upperStr = str.toUpperCase()
let newStr = upperStr.replaceAll("T", "C").replaceAll("C", "T")
console.log(newStr)
}
Converter("TTCCAAXX")
但这是替换所有字符并覆盖它们,我没有得到正确的结果。
您需要使用顺序 for
循环,这样效率更高(只需要一次迭代)并解决了覆盖问题。
为了更好的灵活性,我们可以将字符对存储在一个对象中。
const convertKeyValue = {
'T': 'C',
'C': 'T',
'A': 'D',
'X': 'Y'
}
function Converter(str) {
let upperStr = str.toUpperCase()
var newStr = ''
for(let i = 0; i < upperStr.length; i++){
const current = upperStr.charAt(i);
newStr += convertKeyValue[current] ? convertKeyValue[current] : '';
}
return newStr;
}
console.log(Converter('TTCCAAXX'));
console.log(Converter('TTGG'));
考虑在新映射之外添加一个 boolean/counter 来表示状态。这样您就不会获得重复或周期性的转化。
我有一个简单的 JS 任务我想不通,毕竟对我来说不是那么简单。
创建一个函数 'converter',以这种方式转换字母:
T -> C
C -> T
A -> D
X -> Y
函数接受带字母的字符串。应从字符串中删除所有不可转换的字母。
示例:
- converter('TTCCAAXX') -> 'CCTTDDYY'
- converter('TTGG') -> 'CC'
我试过这样的 -
function Converter(str) {
let upperStr = str.toUpperCase()
let newStr = upperStr.replaceAll("T", "C").replaceAll("C", "T")
console.log(newStr)
}
Converter("TTCCAAXX")
但这是替换所有字符并覆盖它们,我没有得到正确的结果。
您需要使用顺序 for
循环,这样效率更高(只需要一次迭代)并解决了覆盖问题。
为了更好的灵活性,我们可以将字符对存储在一个对象中。
const convertKeyValue = {
'T': 'C',
'C': 'T',
'A': 'D',
'X': 'Y'
}
function Converter(str) {
let upperStr = str.toUpperCase()
var newStr = ''
for(let i = 0; i < upperStr.length; i++){
const current = upperStr.charAt(i);
newStr += convertKeyValue[current] ? convertKeyValue[current] : '';
}
return newStr;
}
console.log(Converter('TTCCAAXX'));
console.log(Converter('TTGG'));
考虑在新映射之外添加一个 boolean/counter 来表示状态。这样您就不会获得重复或周期性的转化。