JavaScriptTwitterFacebookはてブPocketArray.prototype.reduceを説明する際、必ずといってよいほど以下のような数字を順に足していくだけのサンプルコードが添えられている。currentValue;});こういうサンプルをみて思うのが、「実際に1〜10の数字を足す場面なんてなくない?」ということ。たしかにreduceが何者なのかは理解できるのだが、実際に使われる場面がイメージできないのだ。Array.reduce())を読んで完全に理解できた!ということで、自分でも理解を深めるためにreduceの使い方についてまとめる。つの配列要素に対して(左から右へ)同時に関数を適用し、単一の値にします。MDN引数は以下のとおり。1回目のループのpreviousValue簡単にまとめると、配列をループさせて「何らかの処理」を行い、「1つの値」を返す機能。ここまでだとよくわからないと思うので、なぜreduceがあると嬉しいのか実例をあげて解説する。reduceを使わない場合reduceを使った場合と比較するために、まずはreduceを使わない場合の例をあげる。以下のようなアカウントの配列があったとする。男性」の「フルネーム」を抽出した場合、以下のようなコードになるだろう。.map(makeFullName);条件が増えた分だけ、filterやmap、その他Array系のメソッドをチェーンして実装すればよい。ここで重要なのはメソッドチェーンした分だけループ回数が増えるということ。「未成年の男性のフルネーム一覧」を取得するためには、1回目のfilterで5回、2回目のfilterはすでに男性でフィルタリングされているので3回。フルネームを取得するmapで2回。合計10回ループしている。今回の要素数は5個なので気にならないが、データが膨大だったり、条件が複雑になると比例してループ回数も増えていく。フルネーム」の抽出を1度にやってしまう方法だ。}});ループの外に出力用配列を用意しておいて、forEach内でフィルタリングしながらpushしている。これでループ回数を5回に減らすことができた。これで終わり、で十分だ。以前の私もそうだった。reduceを使う場合forEachでも十分なのだが、reduceを使うことでちょっとだけシンプルに実装することができる。[]);やっていることはforEachと同じなのだが、initValueに[](空配列)を渡して、reduce内で編集して返している。そのためループの外に出力用の配列を用意する必要がない。forEachとreduceの何が違うの?大前提として、メソッドの意味と使う目的が違う。forEachは「配列の要素を1つずつ処理する」ことが目的。reduceは「単一の値を返す」ことが目的。「未成年の男性のフルネーム一覧を取得する」という例では、forEachよりもreduceの方が「メソッドの目的」にあっている。結局どっちを使えばいいの?forEach教とreduce教の宗派争いになるので、好みでしかない。データが少ない場合は、filterやmapを使ったほうがコードが読みやすくなる。実際に書いてみて、読みやすい方を使うのが一番だ。実践的なreduceの使い方reduceと一緒に語られることが多いのは、Promiseの直列処理だ。Serverでの開発を行った時にハマったのが、Nullと空文字("")の扱いの違いだった。結論から言うと、以下のようになっている。...【C#】いろんなパディング(空白埋めやゼロ埋め)固定長IFファイルの作成では必要不可欠な処理、パディング。文字長を一定にしたり、ブラの隙間に夢を詰めたりいろんな使い方がされる。このエントリでは以下の3種類の方法を紹介する。2)」とかいたらコンパイラさんに怒られてしまった。LEFT関数は特に問題ないが、可変長データ...Excelで「データを貼り付けできません。」というエラーが出た時の対処法Excelでなぜか図形が挿入できない。オブジェクトを貼り付けることができない。こんなしょうもないことで、10分を無駄にしてしまった。その対処法をまとめる。Google先生に聞いたところ、以下の対処法があったが、どれもよくわからなかった。結論から言うと、VBAにはTry-Catch-Finallyが存在しない。Errorステートメントとラベルを使う。簡単な例外処理(エラーハンドリング)は以下のとおり。」というエラーになる。ToStringプログラミングを行ううえで使う頻度が高いのが型変換(キャスト)。基本的なキャストには以下のようなものがある。どれも型変換に使うメソッドだが...position:stickyでスクロール可能なテーブルの行・列ヘッダを固定するテーブルに表示する情報が多いとき、行ヘッダや列ヘッダを固定して表示したいときがある。使うと簡単に実装できる。IEは対応していないため、ポリフィルが必要となる。完成予想イメージは以下のとおり。昼食を完全食COMPにかえて1ヶ月たったので、経緯や感想を綴ろうと思う。Standard.、SAVASホエイプロテインとの組み合わせについても書く。時間ではなく、技術を売る技術者になることを目標にブログやってます!ご用の方は、ページ右の問い合わせフォーム(※PC用ページのみ)、またはTwitterまでご連絡ください。当ブログの利用するにあたり、何らかのトラブルや損害などが生じても当ブログ管理人は一切責任を負いません。許諾や有無など、その内容については一切の保証を致しかねます。