如何returns正确匹配数组?
How to returns correctly matched array?
我有一个函数可以获取一串 DNA 以及如何return 正确匹配 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;
}
您可以为核碱基获取一个对象,并获取字符串的字符以获取每个字符的值。
对于未知字符,应用稍后的过滤。
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'));
你的想法是错误的。您必须注册这些值。
以数据库的方式思考。
这是一个例子。
var dnaRules = {}
/// register DNA
register = function(key) {
var item = {};
if (dnaRules[key])
return dnaRules[key];
else {
item[key]= [];
item.equal = function(value){
item["data"] = value;
}
dnaRules[key]= item;
}
return item;
}
register("GGC").equal(['GC', 'GC', 'CG']);
register("gat").equal(["GC", "AT", "TA"]);
register("PGYYYHVB").equal(["GC", "GC", "GC"]);
// Search DNA
search = function(value){
var key = null;
Object.keys(dnaRules).forEach(function(v){
if (v.toLowerCase().indexOf(value.toLowerCase())>=0)
key = v;
});
return key== null ? null : dnaRules[key]
}
var item = search("ggc"); // if the item dose not exist you get null
// now display the items
console.log(item.data)
/// or you could change them even
// item.equal([])
我有一个函数可以获取一串 DNA 以及如何return 正确匹配 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;
}
您可以为核碱基获取一个对象,并获取字符串的字符以获取每个字符的值。
对于未知字符,应用稍后的过滤。
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'));
你的想法是错误的。您必须注册这些值。
以数据库的方式思考。
这是一个例子。
var dnaRules = {}
/// register DNA
register = function(key) {
var item = {};
if (dnaRules[key])
return dnaRules[key];
else {
item[key]= [];
item.equal = function(value){
item["data"] = value;
}
dnaRules[key]= item;
}
return item;
}
register("GGC").equal(['GC', 'GC', 'CG']);
register("gat").equal(["GC", "AT", "TA"]);
register("PGYYYHVB").equal(["GC", "GC", "GC"]);
// Search DNA
search = function(value){
var key = null;
Object.keys(dnaRules).forEach(function(v){
if (v.toLowerCase().indexOf(value.toLowerCase())>=0)
key = v;
});
return key== null ? null : dnaRules[key]
}
var item = search("ggc"); // if the item dose not exist you get null
// now display the items
console.log(item.data)
/// or you could change them even
// item.equal([])