私が持っている解決策は回避策であり、配列を好きではない新しい配列にコピーする必要があります。Array プロトタイプをオーバーライドします。
Array.prototype.rotate = function () {
var rotated = [];
var columns = 1;
for(var col = 0; col < columns; col++) {
var myrow = [];
for(var row = 0; row < this.length; row++){ // this.length is the longest column
if(this[row].length > columns){
columns = this[row].length;
}
if(this[row].length > col){
myrow.push(this[row][col]);
} else {
myrow.push(null);
}
}
rotated.push(myrow);
}
return rotated;
}
var mcol = [[0,1,2], [3,4,5], [6,7,8]];
mcol = mcol.rotate();
alert(mcol[1]);
アラート [1,4,7]
誰かがアレイ全体を新しいアレイにコピーする必要のないソリューションを知っている人はいますか?