|
カテゴリ:javascript
LISPやPROLOGみたいに可変個引数の関数を再帰で使う方法を思いついたのでメモ。
javascriptの柔軟さをあらためて実感しました。 function max(){ var args =Array.prototype.slice.call( arguments ); //argumentsオブジェクトを配列化する var len =args.length; if ( len == 0 ){ return null; } else if ( len == 1 ) { return args[ 0 ]; } else { var a =args[ 0 ]; var b =args[ 1 ]; if ( len == 2 ){ return a > b ? a : b; } else { return max( a, max.apply( null, args.slice( 1 ) ) ); //配列の各要素を引数として呼び出す定石 } } } function min(){ var args =Array.prototype.slice.call( arguments ); //argumentsオブジェクトを配列化する var len =args.length; if ( len == 0 ){ return null; } else if ( len == 1 ) { return args[ 0 ]; } else { var a =args[ 0 ]; var b =args[ 1 ]; if ( len == 2 ){ return a > b ? b : a; } else { return min( a, min.apply( null, args.slice( 1 ) ) ); //配列の各要素を引数として呼び出す定石 } } } お気に入りの記事を「いいね!」で応援しよう
最終更新日
2016.02.23 08:32:30
コメント(0) | コメントを書く
[javascript] カテゴリの最新記事
|