JavaScriptの配列で全ての要素に対して処理を行うメソッドを追加
JavaScriptの配列で全ての要素の和を求める方法です。
単純にfor文を使えばいいのですが、配列の全ての要素に対して何らかの処理を行いたいケースは多々あるのでその部分をprototypeにメソッドとして追加してます。
//methodを追加できる関数を作る
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
//Array.prototypeにreduceという名前のメソッド追加
Array.method('reduce', function(f, value){
var i;
for(i = 0; i < this.length; i += 1){
value = f(this[i], value);
}
return value;
});
//動作確認用の配列
var data = [4, 8, 15, 16, 23, 42];
全ての要素の和を求める場合は以下の通り。
//2つの値の合計値を返す関数
var add = function(a, b){
return a + b;
}
//配列にメソッド追加
data.total = function(){
return this.reduce(add, 0);
}
//検証
total = data.total();
console.log(total); //108
全ての要素の乗算を求める場合は以下の通り。
//2つの値の乗算を返す関数
var mult = function(a, b){
return a * b;
}
//配列にメソッド追加
data.mult = function(){
return this.reduce(mult, 1);
}
//検証
mult = data.mult();
console.log(mult); //741880
Comment
コメント(0)
コメントはまだありません。
コメントする
Trackback(0)