JavaScript 関数問題 まとめ 21~30

JavaScriptの練習として個別にアップしている投稿をまとめました。
実際のコード、詳細等は投稿したページにリンクでつないでいます。
載せているコード以外のこたえが浮かんだ方はコメントいただけると嬉しいです。
このまとめが他の方の参考になれば幸いです。

[JavaScript 関数問題 まとめ 1~10](http://qiita.com/may88seiji/items/2f464529ef9709059990)
[JavaScript 関数問題 まとめ 11~20](http://qiita.com/may88seiji/items/2885b9f7559d9785357c)


##21 完全平方であるか判定し、正ならば次の完全平方を返す 
与えられた引数が完全平方であるか判定し、正ならば次の完全平方を返す。
誤ならば-1を返す。
与えられる値は正の数とする。

*完全平方
ある整数・整式が他の整数・整式の平方になっていること。
→ √をとると、整数になる数。1,4,9,16,25,36,49…

```js
function findNextSquare(sq) {
  //write your code.
  return ;
}
```

出力結果　例 

```js
findNextSquare(121) // 144
findNextSquare(625) // 676
findNextSquare(114) // -1 
```

[コード・詳細](http://qiita.com/may88seiji/items/3536f563d4097012405e)

##22 DNA塩基配列のペアを返す 


```js
function pairDna(str) {
 //write your code.
 return arr;
}
pairDna("ATCGA");//[["A","T"],["T","A"],["C","G"],["G","C"],["A","T"]]
```

出力結果　例 

```js
("TTGAG")// [["T","A"],["T","A"],["G","C"],["A","T"],["G","C"]]
("CTCTA") // [["C","G"],["T","A"],["C","G"],["T","A"],["A","T"]]
```

[コード・詳細](http://qiita.com/may88seiji/items/6a362b4aec426b8bccb9)

##23 連続するアルファベットから抜け落ちている文字を返す 
連続するアルファベットから抜け落ちている文字を返す。

```js
function missingLetters(str) {
  //write your code.
  return missing;
}

missingLetters("abce");//d
```

出力結果　例 

```js
("abcdefghjklmno") // i
("bcd") // undefined
("yz") // undefined
```

[コード・詳細](http://qiita.com/may88seiji/items/7f926c1dd30b899b6f8d)

##24 配列に別の配列の新たな数を追加していく 
・配列に別の配列の新たな数を追加していく
・新たな数は最後尾に順に足していく

```js
function uniteUnique(arr) {
 //write your code.
   return newArr;                    
}
uniteUnique([1, 3, 2], [5, 2, 1, 4], [2, 1]) // [1, 3, 2, 5, 4]
```

出力結果　例 

```js
([1, 3, 2], [1, [5]], [2, [4]]) // [1, 3, 2, [5], [4]]
([1, 2, 3], [5, 2, 1]) // [1, 2, 3, 5]
([1, 2, 3], [5, 2, 1, 4], [2, 1], [6, 7, 8]) // [1, 2, 3, 5, 4, 6, 7, 8]
```

[コード・詳細](http://qiita.com/may88seiji/items/c32bd846e534fcd4b4ed)

##25 js HTML Entitiesへの変換 
HTMLマークアップにおいて頻繁に用いられると思われる文字(下記)をHTML Entities(文字実体参照)へ変換する。

```js
function convertHTML(str) {
//write your code.
}
convertHTML("Dolce & Gabbana");//Dolce &​amp; Gabbana
```

出力結果　例 

```js
convertHTML('Stuff in "quotation marks"') // Stuff in &​quot;quotation marks&​quot;
convertHTML("Shindler's List") // Shindler&​apos;s List
convertHTML("<>") // &​lt;&​gt;
convertHTML("abc") // abc
```

[コード・詳細](http://qiita.com/may88seiji/items/2e7ca88ff6aa1822f2c6)

##26 フィボナッチ数列の奇数を合計する。 
例　引数10の場合、10が返ってくる。
10以下の奇数のフィボナッチ数は1,1,3,5で合計は10のため

```js
function sumFibs(num) {
//write your code.
}
sumFibs(4);//Fibs[1,1,2,3] sum 5
```

出力結果　例 

```js
sumFibs(4000000) //4613732
sumFibs(4) //5
sumFibs(75024) //60696
sumFibs(75025) //135721
```

[コード・詳細](http://qiita.com/may88seiji/items/9308b402c611693d57ec)

##27 バイナリからテキストへの変換  
binaryデータをアルファベットへ変換する。

```js
function binaryConverter(str) {
//write your code.
}

binaryConverter("1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001");
//Hello World!
```

[コード・詳細](http://qiita.com/may88seiji/items/a6e347302867f3446f99)

##28 引数の値に含まれる素数を合計する。
例　引数10の場合、10に含まれる素数は2,3,5,7　　こたえは17

```js
function sumPrimes(num) {
//write your code.
}
sumPrimes(10);//17
```

出力結果　例 

```js
sumPrimes(10) //17
sumPrimes(977) // 73156
```

[コード・詳細](http://qiita.com/may88seiji/items/57b717871b9debd35d26)

##29 二つの文字列を一つにする 
与えられる二つの引数(アルファベット文字列)を以下の条件を満たしつつ一つに結合する。
・アルファベットを順番に並べかえる
・重なった文字は省略する

```js
function longest(s1, s2) {
 //write your code.
}
longest("xyaabbbccccdefww", "xxxxyyyyabklmopq") // "abcdefklmopqwxy"
```

出力結果　例 

```js
longest("aretheyhere", "yestheyarehere")// "aehrsty"
longest("loopingisfunbutdangerous", "lessdangerousthancoding")// "abcdefghilnoprstu"
longest("inmanylanguages", "theresapairoffunctions")// "acefghilmnoprstuy"
```

[コード・詳細](http://qiita.com/may88seiji/items/b296201b408d45f81e2c)

##30 フェイクバイナリの変換 
・引数で与えられた数字0~4は0、5~9は1に変換して返す。

```js
function fakeBin(x){
//write your code.
}
```

出力結果　例 

```js
fakeBin('45385593107843568')// 01011110001100111
fakeBin('509321967506747')//101000111101101 
fakeBin('366058562030849490134388085')//011011110000101010000011011
```

[コード・詳細](http://qiita.com/may88seiji/items/902439eff8807e393b8a)