ECMAScript5は、配列の2つのマージメソッドを定義します:reduce()とreduceright()。どちらの方法も、配列の任意のアイテムを繰り返し、最終的な返された値を構築します。 Reduce()メソッドは、配列の最初のアイテムから始まり、配列の端を1つずつ繰り返します。 ReduceRight()メソッドは正反対です。アレイの最後のアイテムから始まり、最初のアイテムに進みます。
どちらの方法も、各アイテムで呼び出される関数と、マージの基礎として初期値の2つのパラメーターを受け取ります。関数は、()reduceright()を減少させ、reduceright()を受信して、前の値、現在の値、アイテムのインデックス、および配列オブジェクトの4つのパラメーターを受け取ります。この関数によって返される値は、最初のパラメーターとして次のアイテムに自動的に渡されます。最初の反復は配列の2番目の項で発生するため、最初のパラメーターは配列の最初の項で、2番目のパラメーターは配列の2番目の項です。
たとえば、redoce()メソッドを使用して、配列内のすべての値の合計を見つけることができます。
var nums = [1,2,3,4,5]; var sum = nums.reduce(function(prev、cur、index、array){pre + cur;});上記のコードでは、コールバック関数が最初に実行され、前でCuRが2であるのは2です。2回目の前の前:CURは3です。Redime()メソッドは、配列内の各アイテムが1回アクセスするまでこのプロセスを繰り返し、最後に返された結果を合計に割り当てます。
Reduceright()メソッドは左右に似ていますが、逆に実行されます。例えば:
var nums = [1,2,3,4,5]; var sum = nums.duceright(function(prev、cur、index、array){pre + cur;});この例では、コールバック関数が初めて実行されたとき、前前は5、CURは4です。最終的な合計結果は、両方ともRecose()メソッドと同じです。
Reduce()およびReduceright()をサポートするブラウザは、IE9+、Firefox3+、Safari4+、Opera10.5+、およびChromeです。
補充します
ECMAScript5は、アレイをマージする2つの新しいメソッドを追加します:Reduce()とReduceright()。
これらは両方とも配列内のすべてのアイテムを反復します
reduce():最初のアイテムから最後まで1つずつ反復します。
ReduceRight():アレイの最後のアイテムから開始し、アレイの最初のアイテムに反復します。
どちらの方法も2つのパラメーターを受け入れます。各アイテムで呼び出される関数(パラメーターは以前の値、現在の値、アイテムのインデックス、配列オブジェクトです)
この関数によって返される値は、最初のパラメーターとして次のアイテムに自動的に渡されます。最初の反復は、アレイの2番目の項目で発生します。
したがって、最初のパラメーターは配列の最初のアイテムであり、2番目のパラメーターは配列の2番目のアイテムです
マージベースの初期値として。
Rediv()メソッドを使用して、次のような配列内のすべての値の合計を実行します。
var値= [1、2、3、4、5]; var sum = values.reduce(function(prev、cur、index、array){return prev + cur;});アラート(合計); //結果は同じですが、方向は反対のvar sum2 = values.duceright(function(prev、cur、index、array){return prev+cur;});アラート(sum2);マージソートは、マージ操作に基づいて効果的なソートアルゴリズムです。このアルゴリズムは、Divide and Conquerの非常に典型的なアプリケーションです。
マージソートメソッドは、2つの(または2つ以上)順序付けられたテーブルを新しい秩序化されたテーブルにマージすることです。つまり、シーケンスをいくつかのサブシーケンスに分割します。各サブシーケンスが順序付けられます。次に、順序付けられたサブシーケンスが全体的な順序付けされたシーケンスにマージされます。
マージソートは、マージ操作に基づいて効果的なソートアルゴリズムです。このアルゴリズムは、Divide and Conquerの非常に典型的なアプリケーションです。順序付けられたサブシーケンスをマージして、完全に順序付けられたシーケンスを取得します。つまり、各サブセンセンスを最初に行い、次にサブシーケンスセグメントを順序にします。 2つの順序付けられたテーブルが1つの順序テーブルにマージされている場合、2ウェイマージと呼ばれます。