在Javascript中替换字符串值解决方案说明
有人能解释一下这个代码是如何工作的吗?特别是回调函数,我不明白为什么它会在整个输入中循环,而不仅仅是在部分输入中循环在Javascript中替换字符串值解决方案说明,javascript,Javascript,有人能解释一下这个代码是如何工作的吗?特别是回调函数,我不明白为什么它会在整个输入中循环,而不仅仅是在部分输入中循环 function DNAStrand(dna){ return dna.replace(/[ACGT]/g, function(l){ return pairs[l] }); } var pairs = { A:'T', T:'A', G:'C', C:'G' }; 此外,这是我的解决方案,用于相同的任务(关于代码战争),我的代码在4毫秒内编译,我认为这是
function DNAStrand(dna){
return dna.replace(/[ACGT]/g, function(l){ return pairs[l] });
}
var pairs = {
A:'T',
T:'A',
G:'C',
C:'G'
};
此外,这是我的解决方案,用于相同的任务(关于代码战争),我的代码在4毫秒内编译,我认为这是非常好的
function DNAStrand(dna){
//your code here
var dnaArray = dna.slice("");
var compliment = []; //push all values here
for(i=0; i<dnaArray.length; i++){ //loops through whole array
if(dnaArray[i] === 'T'){compliment.push('A')}
if(dnaArray[i] === 'A'){compliment.push('T')}
if(dnaArray[i] === 'G'){compliment.push('C')}
if(dnaArray[i] === 'C'){compliment.push('G')}
}
var result = compliment.join("");
return result;
}
功能DNAStrand(dna){
//你的代码在这里
var dnaArray=dna.slice(“”);
var恭维=[];//将所有值推送到此处
对于(i=0;i
正则表达式/[ACGT]/g
在dna
字符串中执行全局(从/g
标志)搜索a
、C
、g
或T
对于每个匹配项(单个a
、C
、G
或T
),它使用回调函数进行替换
回调函数在对中查找输入字符(A
、C
、G
或T
),并返回相应的值
至于为什么它会在整个字符串中循环,而不仅仅是字符串的一部分
你这么说是什么意思,你能详细解释一下吗?你不清楚什么让你困惑,你是怎么想的“一部分”您的第二个代码段至少应该使用if-else链。如果第一个if的计算结果为true,则没有理由执行其他if。另外,整个for循环可能是一个map()用法。但是,你问了两个不同的问题,这使得问题过于宽泛。选择你想问的问题,一次只问一个。还有javascript函数的api文档。如果你想知道函数是如何工作的,你应该首先找到它们。