JavaScriptのNumberはイミュータブルですが、for文のiに対してconstできなかったり微妙に使い勝手が悪いのでミュータブルなクラスを作ってみました。もっとも、演算子オーバーロードができないので使い勝手はこの上なく悪いですが。
GitHubリポジトリ
mutable-numberここにあります。
使い方
const arr = [1, 2, 3, 4, 5]; for (const i = new MutableNumber(0); i.value < arr.length; i.inc()) { console.log(arr[i.value]); }
こんなふうになります。演算子オーバーロードさえできればこんな醜い構文にならなくて済むのに・・・
もしも演算子オーバーロードできたら
const arr = [1, 2, 3, 4, 5]; for (const i = new MutableNumber(0); i < arr.length; i++) { console.log(arr[i]); }
こうなったらいいですよね。もっとも、Numberはイミュータブルの方が嬉しいケースが多いですし、本当にどういう需要があるのかわかりませんがね。