2017/02/06

【JavaScript】オブジェクトの配列をKeyで集計(グルーピング)する方法

配列内のオブジェクトのキーを使って、抽出したり、集計したり、グルーピングしたいときがある。
// 元データ
[
  { name: 'taro', age: 10 },
  { name: 'jiro', age: 20, email: 'jiro@example.com' },
  { name: 'saburo', age: 30, email: 'saburo@example.com' }  
]

// 欲しいデータ(ユーザごとではなくそれぞれのフィールドでグルーピングしたい)
{
  name: ['taro', 'jiro', 'saburo'],
  age: [10, 20, 30],
  email: ['jiro@example.com', 'saburo@example.com']
}

このようにデータを変換するため、lodash(underscore.js)、ES2015(ES6)、ES5のそれぞれの実装方法をまとめる。

2017/02/01

【JavaScript】配列のシャッフルする(要素をランダムに並び替える)

重複なく、かつランダムな値がほしいときがある。たとえばトランプのカード(1〜13)をランダムに取得したい場合などだ。
そんなときに使える関数を、lodash、ES2015(ES6)、ES5(レガシーブラウザ対応)でそれぞれ実装してみた。

ちなみに今回シャッフルさせるために使ったアルゴリズムは「Fisher-Yatesのシャッフル」という名前がついているらしい。

2017/01/29

ES2015(ES6)の分割代入でCannot set property of undefinedやis not definedというエラーがでる

AとBの値を入れ替えるときに分割代入(Destructuring assignment)構文をつかうと、テンポラリ変数を使わなくてすむ。
ということで、配列の中身をシャッフルする関数で分割代入構文を使ったのだが「Cannot set property 'hoge' of undefined」や、定義したはずの変数が「'hoge' is not defined」というエラーがでてしまった。

いろいろ調べたので結果をまとめる。

2017/01/23

Docker初心者でも安心!Portainerを使ってイメージやコンテナを管理する

初心者にとってDockerのイメージやコンテナをCLIで操作するのは大変だ。覚えるコマンドはたくさんあるし、操作だって手間がかかる。
単純にDockerfileを用意して、イメージつくって、コンテナ立ち上げるくらいなら簡単だが、コンテナの数が増えてくると手に負えない。

そこでPortainerというツールをオススメする。
PortainerはDockerホストをブラウザから操作するための軽量な管理ツールだ。LinuxだけでなくWindowsでもmacOSでも使う使うことができる。
※ Windowsのみ、Portainerが動いているDockerホストを管理することができない

もともとはUI for Docker(a.k.a. DockerUI)だったのが、Portainerに名前を変えて開発が継続されているらしい。

2017/01/22

2016年活動報告と2017年行動指針

2016年はお世話になりました。
2017年もひきつづきダーシノ、当ブログともによろしくお願いします。


2016年のBlack Everyday Company


まずは当ブログについての総括を。

ブログ 71万PV

2016年の1年間で、715,867PVあった。
60記事投稿し、1月には50,562だったPVが12月には87,812PVまで伸びた。しかし、12月はとある記事がバズっただけなので、平常時の11月で考えると62,519PV。1.2万PV/月 分伸びた。

そして、9月時点で200記事を突破した。