给出的 DNA 链上缺少配对元素。 请基于每个字符,获取与其配对的元素,并将结果作为二维数组返回。
DNA 的碱基对 有两种形式:一种是 A 与 T,一种是 C 与 G。 请为参数中给出的每个字符配对相应的碱基。
注意,参数中给出的字符应作为每个子数组中的第一个元素返回。
例如,传入 GCG 时,应返回 [[“G”, “C”], [“C”,“G”], [“G”, “C”]]。
字符和它的配对组成一个数组中,所有配对数组放在一个数组里。
第一种方法
function pairElement(str) {
// Return each strand as an array of two elements, the original and the pair.
var paired = [];
// Function to check with strand to pair.
var search = function(char) {
switch (char) {
case "A":
paired.push(["A", "T"]);
break;
case "T":
paired.push(["T", "A"]);
break;
case "C":
paired.push(["C", "G"]);
break;
case "G":
paired.push(["G", "C"]);
break;
}
};
// Loops through the input and pair.
for (var i = 0; i < str.length; i++) {
search(str[i]);
}
return paired;
}
// test here
pairElement("GCG");
第二种方法
function pairElement(str) {
//create object for pair lookup
var pairs = {
A: "T",
T: "A",
C: "G",
G: "C"
};
//split string into array of characters
var arr = str.split("");
//map character to array of character and matching pair
return arr.map(x => [x, pairs[x]]);
}
//test here
pairElement("GCG");