所以我试图添加到字符串中,并且显示为空。
var DNA = "TAG";
var mRNA = "";
m_RNA()
function check(a, b, string) {
if (string = a) {
mRNA.concat(b);
}
}
function m_RNA(){
//console.log(DNA)
for (var i = 0; i < DNA.length; i++) {
console.log("Checking: " + DNA[i]);
check("T", "A", DNA[i]);
check("A", "U", DNA[i]);
check("C", "G", DNA[i]);
check("G", "C", DNA[i]);
console.log(mRNA);
}
}
它应该在控制台中显示AUC,但只是空白。顺便说一下,这是通过firefox实现的。
答案 0 :(得分:4)
mRNA.concat(b);
不会改变字符串,它只会计算值。您需要mRNA = mRNA.concat(b)
(或mRNA = mRNA + b
)来更改mRNA
的值。
答案 1 :(得分:0)
与其尝试对上限范围内的变量进行突变, 您可以考虑将任务包装到功能中 ...
重构它,确保m_RNA
返回正确的映射:
var DNA = "TAG";
// create a map so every char maps to something.
const map = {
T: 'A',
A: 'U',
C: 'G',
G: 'C',
};
// check only needs to pick from map, or return an empty string.
function check(fragment) {
return map[fragment] || '';
}
function m_RNA(dna) {
// reduces all the chars to the new sequence
return Array.from(dna).reduce(
function (result, fragment) {
return result.concat(check(fragment))
},
"",
);
}
var mRNA = m_RNA(DNA);
console.log('mRNA', mRNA);