首页 > 解决方案 > 如何返回正确匹配的数组?

问题描述

我有一个函数,它需要一串 DNA 以及如何返回正确匹配的 dna 数组我尝试过的代码:

function checkDNA(dna) {
   var dnaarr = [];


    for(var i = 0; i < dna.length; i++) {
         var str = [];
str.push(dna[i]); //pushing current str[i]
      if(dna[i].indexOf('') === 0) {
        var a = str.push('sd');
      }
      if(dna[i].indexOf('GGC') === 0) {
        var b = str.push("GC", "GC", "CG");
      }
      if(dna[i].indexOf('gat') === 0) {
        var c = str.push("GC", "AT", "TA");
      }
      if(dna[i].indexOf('PGYYYHVB') === 0) {
        var d = str.push('GC');
      }
dnaarr.push(str); //pushing the array dna to the main array dnaarr
    }


    return dnaarr;
}

标签: javascripttypescriptbioinformatics

解决方案


您可以为核碱基取一个对象,并取字符串的字符来获取每个字符的值。

对于未知字符,应用稍后的过滤。

function pair(string) {
    var nucleobases = { G: 'C', C: 'G', T: 'A', A: 'T' };

    return Array
        .from(string.toUpperCase(), s => s in nucleobases && s + nucleobases[s])
        .filter(Boolean);
}

console.log(pair('GTTC'));


推荐阅读