Open1

オブジェクトのうまい使い方

ピン留めされたアイテム
So-sanSo-san

DNAのペアをつくる

あるDNAが与えられて,それに対応する塩基対をJavaScriptを使って求めたいと,夜中にふと思うこともあるかと思います.

input
["TGG"]
output
[["T", "A"], ["G","C"], ["G", "C"]]

こんな感じで.

私の考えたコード(全然綺麗じゃない)

ということで,コードを書いてみました.

dna_pairing.js
function pairElement(str) {
  return str
    .split("")
    .map(s=>{
      if(s==="A"){
        return [s].concat("T")
      } else if(s==="T"){
        return [s].concat("A")
      } else if(s==="G"){
        return [s].concat("C")
      } else {
        return [s].concat("G")
      }
    })
}

pairElement("TGG");

出力は正しいけど,なんだかなーという感じでもやもやしてました.
そこで,FreeCodeCampのHintを見てみました.
そしたら,こんな回答が...

どこかの誰かの回答

dna_pairing.js
function pairElement(dna) {
  const pairs = {
    A: "T",
    T: "A",
    G: "C",
    C: "G",
  }

  return dna.split("").map(x=>[x,pairs[x]])
}

pairElement("TGG");

オブジェクトのキーと値をうまく使って,mapで綺麗に処理してる.

参考

https://www.freecodecamp.org/japanese/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/dna-pairing