Мне часто приходилось делать определенные операции для всех элементов в массиве, и мне хотелось, чтобы у JavaScript было что-то вроде С# LINQ. Итак, с этой целью я взломал некоторые расширения прототипа Array:
var data = [1, 2, 3];
Array.prototype.sum = function () {
var total = 0;
for (var i = 0; i < this.length; i++) {
total += this[i];
}
return total;
};
Array.prototype.first = function () {
return this[0];
};
Array.prototype.last = function () {
return this[this.length - 1];
};
Array.prototype.average = function () {
return this.sum() / this.length;
};
Array.prototype.range = function () {
var self = this.sort();
return {
min: self[0],
max: self[this.length-1]
}
};
console.log(data.sum()) <-- 6
Это упрощает работу с массивами, если вам нужно выполнить некоторую математическую обработку. Есть ли какие-либо слова совета против использования такого шаблона? Полагаю, я должен, вероятно, создать свой собственный тип, который наследуется от прототипа Array, но кроме этого, если в этих массивах будут только цифры, это идея OK?