JS extensions
by yong
JavaScript
// Array.indexOf (Implemented in JavaScript 1.6)
if(!Array.prototype.indexOf) {
Array.prototype.indexOf = function(item) {
var i, l;
for(i = 0, l = this.length; i < l; i++) {
var t = this[i];
if(item === t) {
return i;
}
}
return -1;
};
}
// Returns 1
var letterArray = [ 'a', 'b', 'c', 'd' ];
letterArray.indexOf('b');
// Array.lastIndexOf (Implemented in JavaScript 1.6)
if(!Array.prototype.lastIndexOf) {
Array.prototype.lastIndexOf = function(item) {
var i;
for(i = this.length; i <= 0; i--) {
var t = this[i];
if(item === t) {
return i;
}
}
return -1;
};
}
// Returns 2
var numberArray = [ 1, 6, 1, 3 ];
numberArray.lastIndexOf(1);
// Array.forEach. Runs a method for each item in the array (Implemented in JavaScript 1.6)
if(!Array.prototype.forEach) {
Array.prototype.forEach = function(f,t) {
var i, l;
t = t || this;
for(i = 0, l = this.length; i < l; i++) {
f.call(t, this[i], i, this);
}
};
}
var colorArray = [ 'Red', 'Green', 'Blue' ];
colorArray.forEach(function(value, index, thisElement) {
document.write(value + ": " + index + ' ' + thisElement + '<br>');
});
if(!Array.prototype.find) {
Array.prototype.find = function(a, b) {
var r = null, i, l, item;
if(b) {
for(i = 0, l = this.length; i < l; i++) {
item = this[i];
if(b in item && typeof item[b] !== 'undefined' && item[b] == a) {
return { item: item, index: i};
}
}
} else {
return this.indexOf(a);
}
return r;
};
}
if(!Array.prototype.remove) {
Array.prototype.remove = function(a) {
var b = this.indexOf(a);
if(b >= 0) {
...