2017-05-16 28 views
1

複数の文字を1つの文字列に置き換えようとしていますが、Cの文字はGには変わりません。残りはうまく動作します。後で、キー/値のペアを:あなたはGにCのすべてのインスタンスを変更した後、あなたが戻ってCにGのすべてのインスタンスを変更するようにするには、各ステップで、あなたの入力文字列内のグローバル置き換えをやっている文字列内の複数の文字を置き換える方法は?

String.prototype.allReplace = function(obj) { 
    var retStr = this; 
    for (var x in obj) { 
     retStr = retStr.replace(new RegExp(x, 'g'), obj[x]); 
    } 
    return retStr; 
}; 

console.log('ACGTGGTCTTAA'.allReplace({'A' : 'U', 'C' : 'G', 'G' : 'C', 'T' : 'A'})); 

// console.log is UCCACCACAAUU 

答えて

3

以前のものの結果を上書きします。

代わりに、個別にご入力の各文字を反復処理:

String.prototype.allReplace = function(obj) { 
 
    var input = this; 
 
    var output = ""; 
 
    for (var i = 0; i < input.length; i++) { 
 
    output = output + obj[input.charAt(i)]; 
 
    } 
 
    return output; 
 
} 
 
console.log('ACGTGGTCTTAA'.allReplace({ 
 
    'A': 'U', 
 
    'C': 'G', 
 
    'G': 'C', 
 
    'T': 'A' 
 
}));

関連する問題