是否有任何内置函数用于将每个字符串转换为JavaScript中的另一个字符串?
例如
A <=> T
G <=> C
我的输入字符串AAATATATTGC
我希望转换所有A to T
T to A
C to G
G to C
。我想输出的是TTTATATAACG
。
在Perl中,对于这种情况很容易做到。
my $s = "AAATATATTGC";
$s =~tr/ATGC/TACG/;
我得到了结果。
与perl一样,在JavaScript中可以采用任何可行的方式。?
答案 0 :(得分:3)
您可以使用String#replace
进行回调。
// An object to use as replacement
var replacement = {
A: 'T',
T: 'A',
C: 'G',
G: 'C'
};
// Match a single upperCase character from given characters
var result = 'AAATATATTGC'.replace(/[ATCG]/g, function(_) {
return replacement[_]; // Use the value of the key as replacement
});
document.body.innerHTML = result;
答案 1 :(得分:1)
使用新的Map构造稍微改变以避免手动编码的回调,这可以比将函数绑定到闭包变量更可重用和可组合:
// replacements:
var reps= new Map([
['A','T'],
['T','A'],
['C','G'],
['G','C']
]);
var result = 'AAATATATTGC'.replace(/[ATCG]/g, reps.get.bind(reps));
// == "TTTATATAACG"
地图作为查找表模式也更有用,因为0
,"0"
和[0]
都可以是不同的查找键......