How to append or concat strings in Javascript?

时光总嘲笑我的痴心妄想 提交于 2021-02-05 08:57:05

问题


So I'm trying to add to a string and it shows up as empty.

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);
  }
}

Its supposed to show AUC in the console but its just blank. This is through firefox by the way.


回答1:


mRNA.concat(b); doesn't mutate the string, it only computes the value. You need tomRNA = mRNA.concat(b) (or mRNA = mRNA + b) to change the value of mRNA.




回答2:


Rather than trying to mutate variables on the upper scope, you could consider to wrap your task into a function...

let's refactor it making sure m_RNA returns the correct mapping:

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);


来源:https://stackoverflow.com/questions/55580489/how-to-append-or-concat-strings-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!