解题思路链接
给出的 DNA 链上缺少配对元素。 请基于每个字符,获取与其配对的元素,并将结果作为二维数组返回。
DNA 的碱基对 有两种形式:一种是 A 与 T,一种是 C 与 G。 请为参数中给出的每个字符配对相应的碱基。
注意,参数中给出的字符应作为每个子数组中的第一个元素返回。
例如,传入 GCG
时,应返回 [["G", "C"], ["C","G"], ["G", "C"]]
。
一、switch 语句
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 const pairs = { A: "T", T: "A", C: "G", G: "C" } // split string into array of characters const arr = str.split("") // map character to array of character and matching pair return arr.map(x => [x, pairs[x]]) } // test here pairElement("GCG")
相关链接:
Array.prototype.map()
属性访问器
箭头函数