forEachのindexとかarrayの使いどころがわからなかった
forEachでコールバック関数を利用するのみでindex,arrayを使ったことがなかった。
face-api.jsの中身を見ていてああ、なるほどと思ったのでまとめます。
例
face-api.jsの中で使われていたコードの雰囲気
test.js
array.slice(1).forEach(({ x, y }, index) =>
{
const from = array[index];
ctx.moveTo(from.x, from.y);
ctx.lineTo(x, y);
})
ctx.stroke();
//~~~
これは顔の特徴点と特徴点同士を線でつなぎ、canvas上に描画する処理の一部。↓の青線を引く。
slice関数で1番目以外の点を取得し、それぞれについて一つ前の点から次の点へ直線を引くという流れです。
あとがき
いままで使える機会があったが、わざわざ別で変数を用意して繰り返しインクリメントさせる
という非常にスマートでない方法でやっていた。。。
apiの中身を見てみるといろいろと発見がある!