二次元配列とjoin
例えばこういう二次元配列に配列のjoin()メソッドを使いたいとする。
00 | 01 | 02 | 03 |
10 | 11 | 12 | 13 |
20 | 21 | 22 | 23 |
デフォルトの区切り(,)があってもよいときはarr.join()で問題ない。
返って来るのは、
00,01,02,03,10,11,12,13,20,21,22,23
問題は、例えば|で区切った文字列を返したいときにarr.join("|")を行うと、返って来る文字列は
00,01,02,03|10,11,12,13|20,21,22,23
行単位(もとの配列)にしか|の区切りが適用されていない。
(arr.lengthだとこの配列では12ではなく3が返って来るのと一緒)
とりあえず、for文でこうして↓
var arrNew = new Array(arr.length); for (i=0; i<arr.length; i++) arrNew[i] = arr[i].join("|");
arrNew("|")したら、
00|01|02|03|10|11|12|13|20|21|22|23
という文字列が返って来たけど、もっと他にいい方法はあるのかな。
区切りを消したいときは、
var arrNew = new Array(arr.length); for (i=0; i<arr.length; i++) arrNew[i] = arr[i].join("");
でarrNew("")をすれば、
000102031011121320212223
が返って来る。