1つの配列から1つずつずれた2次元配列を作る
1つの配列から要素を1つずつずらした多次元配列の作り方。
var _array:Array = [1, 2, 3, 4];
var _allArray:Array = new Array();
var _length:int = _array.length;
for (var i:int = 0; i < _length; i++ ) {
var a:Array = new Array();
_allArray[i] = a;
for (var j:int = 0; j < _length; j++ ) {
a[j] = _array[j];
};
if (i != 0) {
for (var k:int = 0; k < i; k++ ) {
var n:Number = _allArray[i].pop();
_allArray[i].unshift(n);
}
}
}
出力結果は以下のようになります(見難いので改行してます)。
1,2,3,4, 4,1,2,3, 3,4,1,2, 2,3,4,1
配列を1つずつ2次元配列に追加して、pop()で配列の末尾を削除、unshift()で先頭に追加。1個目はそのまま、2個目だったら1回、3個目だったら2回削除&追加を繰り返す。
出現の順番を変えたい時とかに使えると想ったんだけど、もっといいやり方がありそう。そもそもこんなことやる意味ないかも。
