在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 来表示状态。这样您就不会获得重复或周期性的转化。