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
B!

Comment

コメント(0)

コメントはまだありません。

コメントする

Trackback(0)