(function (_array) {
_array.prototype.forEach = _array.prototype.forEach || function (func) {
if (typeof func !== 'function') return;
for (var i = 0, len = this.length; i < len; i++) {
func(this[i], i);
}
}
_array.prototype.map = _array.prototype.map || function (func) {
if (typeof func !== 'function') return [];
var _list = [];
this.forEach(function (item, index) { _list.push(func(item, index)) })
return _list;
}
_array.prototype.filter = _array.prototype.filter || function (func) {
if (typeof func !== 'function') return [];
var _list = [];
this.forEach(function (item, index) { func(item, index) && _list.push(item) })
return _list;
}
_array.prototype.findIndex = _array.prototype.findIndex || function (func) {
if (typeof func !== 'function') return -1;
for (var i = 0, len = this.length; i < len; i++) {
if (func(this[i], i)) return i;
}
return -1;
}
_array.prototype.find = _array.prototype.find || function (func) {
return this[this.findIndex(func)];
}
_array.prototype.every = _array.prototype.every || function (func) {
return this.length > 0 && this.filter(func).length === this.length;
}
_array.prototype.some = _array.prototype.some || function (func) {
return this.findIndex(func) >= 0;
}
_array.prototype.indexOf = _array.prototype.indexOf || function (data) {
for (var i = 0, len = this.length; i < len; i++) {
if (this[i] === data) return i;
}
return -1;
}
_array.prototype.lastIndexOf = _array.prototype.lastIndexOf || function (data) {
for (var i = this.length - 1; i >= 0 ; i--) {
if (this[i] === data) return i;
}
return -1;
}
_array.prototype.contains = _array.prototype.contains || function (data) {
for (var i = this.length - 1; i >= 0; i--) {
if (this[i] === data) return true;
}
return false;
}
_array.prototype.sum = _array.prototype.sum || function () {
var amount = 0;
for (var i = 0, len = this.length; i < len; i++) {
amount += parseFloat(this[i]);
}
return amount;
}
_array.prototype.min = function () {
var min = this[0];
this.forEach(function (ele, index, arr) {
if (ele < min) {
min = ele;
}
})
return min;
}
})(Array);