開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- JavaScript (プログラミング言語)
- Node.js v12.16.3(処理系)
#JavaScript
— suin❄️TypeScript入門書執筆中 (@suin) May 22, 2020
【急募】 配列を2つ渡すと、要素を交互に入れ込んだ配列を返す関数の最短実装
```
const odds = [1, 3, 5]
const evens = [2, 4, 6]
function kougo(odds, evens) {
// todo
return []
}
console.log(kougo(odds, evens))
//=> [1, 2, 3, 4, 5, 6]
``` pic.twitter.com/mAj0zaSAVH
もっと短い再帰関数を書いてみた。じゃあ僕は再帰で
— 具象概念とりさん (@TypedTypelessTy) May 22, 2020
function kougo(odds, evens) {
function help(a, b, c) {
if(a.length==0) {
return c;
}
c.push(a.shift());
return help(b, a, c);
}
return help(odds,evens,[]);
}
console.log(kougo(odds, evens));, evens));
コード
let kougo = (a, b) => a.length === 0 ? b :
b.length === 0 ? a :
[a[0]].concat(kougo(b, a.slice(1))),
odds = [1, 3, 5],
evens = [2, 4];
console.log(kougo(odds, evens))
//=> [1, 2, 3, 4, 5]
odds = [1, 3, 5]
evens = [2, 4]
console.log(kougo(odds, evens))
//=> [1, 2, 3, 4, 5]
odds = [1]
evens = []
console.log(kougo(odds, evens))
//=> [1]
odds = [5, 3, 1]
evens = [4, 2]
console.log(kougo(odds, evens))
//=> [ 5, 4, 3, 2, 1 ]
入出力結果(Zsh、PowerShell、Terminal)
% node kougo.js
[ 1, 2, 3, 4, 5 ]
[ 1, 2, 3, 4, 5 ]
[ 1 ]
[ 5, 4, 3, 2, 1 ]
%
ということで、コードの長さという意味なら最短に近づいたかも。
0 コメント:
コメントを投稿