dna配对,将阵列推入阵列中

jyo*_*006 0 javascript arrays push

function pair(str) {

  var dna = [];
  var dnaarr = [];

    for(var i = 0; i < str.length; i++) {

      if(str[i].indexOf('G') === 0) {
        var a = dna.push('C');
      }
      if(str[i].indexOf('C') === 0) {
        var b = dna.push('G');
      }
      if(str[i].indexOf('A') === 0) {
        var c = dna.push('T');
      }
      if(str[i].indexOf('T') === 0) {
        var d = dna.push('A');
      }

    }
    for(var j = 0; j < str.length; j++) {
      var e = dnaarr.push(str[j]);
      var f = dnaarr.push(dna[j]);
    }

    return dnaarr;
}

pair("ATGCG");
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,它返回

[ 'A', 'T', 'T', 'A', 'G', 'C', 'C', 'G', 'G', 'C' ]
Run Code Online (Sandbox Code Playgroud)

我需要它回来

[['A', 'T'], ['T', 'A'], ['G', 'C'], ['C','G'], ['G', 'C']]
Run Code Online (Sandbox Code Playgroud)

有谁可以请帮我这个代码?

gin*_*93r 6

这是一个更简单的版本:

function pair(str)
{
    // Array to hold the pairs
    var dna = [];
    // Loop through the string
    for (var i = 0; i < str.length; i++) {
        // Switch based on the current letter in the string
        // Push an array to dna with the current string and it's pair
        // in the case of 'G' the array would be ['G','C']
        // dna would then be [['G','C']]
        switch(str[i])
        {
            case "G":
                dna.push([str[i],"C"]);
                break;
            case "C":
                dna.push([str[i],"G"]);
                break;
            case "A":
                dna.push([str[i],"T"]);
                break;
            case "T":
                dna.push([str[i],"A"]);
                break;
        };
    }
    // return the array
    return dna;
}

pair("ATGCG")
Run Code Online (Sandbox Code Playgroud)