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)