Array.transpose()
出来てない
JavaScript
Array.prototype.transpose || (Array.prototype.transpose = function() {
if (!this.length) {
return [];
}
if (this[0] instanceof Array) {
var tlen = this.length,
dlen = this[0].length,
newA = new Array(dlen);
} else {
throw new Error("二次元配列をクレ!(・∀・)");
}
for (var i = tlen; i--;) {
if (this[i].length !== dlen) throw new Error("Index Error! 不揃いな林檎たち(・∀・)");
}
for (var i = 0; i < dlen; ++i) {
newA[i] = [];
for (var j = 0, l = tlen; j < l; j++) {
newA[i][j] = this[j][i];
}
}
return newA;
});
var a = [
[1, 2, 3],
[4, 5, 6]
];
//alert(a instanceof Array);//true
var at = a.transpose();
document.write(
at.length + "<br />" + at.length + "<br />" + at.length + "<br />" + (at instanceof Array) + "<br />" + typeof at + "<hr />");
for (var k = 0, m = at.length; k < m; ++k) {
document.write(at[k] + "<br />");
}
/*正解*/
/*
1, 4
2, 5
3, 6
*/