diff options
author | wei <> | 2006-01-09 03:40:59 +0000 |
---|---|---|
committer | wei <> | 2006-01-09 03:40:59 +0000 |
commit | 9c9a2d731fea9679f65904a3a6b72dd78b4253a4 (patch) | |
tree | 1d81a12a7a79e74e98218d01c6278a81f0996f5d /framework/Web/Javascripts/prototype/array.js | |
parent | 10420d2bcde1a7437b58175f417170b2d6d93e50 (diff) |
Update library
Diffstat (limited to 'framework/Web/Javascripts/prototype/array.js')
-rw-r--r-- | framework/Web/Javascripts/prototype/array.js | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/framework/Web/Javascripts/prototype/array.js b/framework/Web/Javascripts/prototype/array.js index 397afbbf..f5694c05 100644 --- a/framework/Web/Javascripts/prototype/array.js +++ b/framework/Web/Javascripts/prototype/array.js @@ -1,4 +1,5 @@ var $A = Array.from = function(iterable) {
+ if (!iterable) return [];
if (iterable.toArray) {
return iterable.toArray();
} else {
@@ -11,12 +12,19 @@ var $A = Array.from = function(iterable) { Object.extend(Array.prototype, Enumerable);
+Array.prototype._reverse = Array.prototype.reverse;
+
Object.extend(Array.prototype, {
_each: function(iterator) {
for (var i = 0; i < this.length; i++)
iterator(this[i]);
},
+ clear: function() {
+ this.length = 0;
+ return this;
+ },
+
first: function() {
return this[0];
},
@@ -48,16 +56,21 @@ Object.extend(Array.prototype, { indexOf: function(object) {
for (var i = 0; i < this.length; i++)
if (this[i] == object) return i;
- return false;
+ return -1;
},
- reverse: function() {
- var result = [];
- for (var i = this.length; i > 0; i--)
- result.push(this[i-1]);
- return result;
+ reverse: function(inline) {
+ return (inline !== false ? this : this.toArray())._reverse();
},
+ shift: function() {
+ var result = this[0];
+ for (var i = 0; i < this.length - 1; i++)
+ this[i] = this[i + 1];
+ this.length--;
+ return result;
+ },
+
inspect: function() {
return '[' + this.map(Object.inspect).join(', ') + ']';
}
|