I am trying to expand the prototype of an array:
Array.prototype.rotate = function() {
var arr = [];
for (var i = 0; i < this[0].length; ++i) {
arr[i] = [];
for (var j = 0; j < this.length; ++j) {
arr[i].push(this[j][i])
}
}
this = arr;
return arr;
}
Totally dandy, up this = arr. It is bombing.
How to reassign a property of a thisprototype function? I want the hells to use the previous array configuration.
EDIT
Why am I doing this? I want it to behave like other array functions. For example, this works:
myArray.pop();
I do not need to do this:
myArray = myArray.pop();
OTHER IMAGES
I did this to solve this, but it seems silly:
Array.prototype.rotate = function()
{
var arr = [];
var len = this[0].length;
for (var i = 0; i < len; ++i) {
arr[i] = [];
for (var j = 0; j < this.length; ++j) {
arr[i].push(this[j][i])
}
}
for (var i = 0; i < this.length; ++i) {
delete this[i];
}
for (var i = 0; i < arr.length; ++i) {
this[i] = arr[i];
}
return arr;
}
This will work, but in the example when rotating this array:
[[1, 1], [2, 2], [3, 3]]
I would get:
[[1, 2, 3], [1, 2, 3], ]
Look at this little empty third element? Yes, it caused me problems.
source
share