それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

javascriptでeach_slice や array_chunk的なこと

javascriptで配列の部分配列をsliceで出せるのだが、それだけじゃ不満なので、配列を行列に変換してみた。 テーブルや、ページング作るのにあれば便利だろう。

Array.prototype.chunk = function(n){
    len = Math.round(this.length/n,10)
    ret = []
    for(var i=0;i<len;i++){
        ret.push( this.slice( i*n, i*n+n )  )
    }
    return ret;
}

配列を配列に分ける。

> [9,8,7,6,5,4,3,2,1,0].chunk(2)
[ [ 9, 8 ],
  [ 7, 6 ],
  [ 5, 4 ],
  [ 3, 2 ],
  [ 1, 0 ] ]
> [9,8,7,6,5,4,3,2,1,0].chunk(1)
[ [ 9 ],
  [ 8 ],
  [ 7 ],
  [ 6 ],
  [ 5 ],
  [ 4 ],
  [ 3 ],
  [ 2 ],
  [ 1 ],
  [ 0 ] ]
> [9,8,7,6,5,4,3,2,1,0].chunk(3)
[ [ 9, 8, 7 ],
  [ 6, 5, 4 ],
  [ 3, 2, 1 ] ]
> [9,8,7,6,5,4,3,2,1,0].chunk(4)
[ [ 9, 8, 7, 6 ],
  [ 5, 4, 3, 2 ],
  [ 1, 0 ] ]
>

意外と便利かもしれない。