1

sortArray(a, b)持っている配列をソートするカスタムソートルーチン ( ) を作成しました。

こう呼んだら

    a.sort(function (v1, v2) { return sortArray(v1, v2); });

すべて正常に動作します。

私はこのようにそれを呼び出す場合:

    a.sort(sortArray(v1, v2));

v1 と v2 は未定義であるため、エラーが発生します。

匿名関数を作成せずに .sort() メソッドによって渡された引数を利用して、最初にそれらを受け取り、次にそれらをユーザー定義関数に渡す方法はありませんか?

4

1 に答える 1

6

Array.prototype.sort関数参照が必要ですが、呼び出しsortArrayてその呼び出しの戻り値を渡そうとしています。関数への参照を渡すだけです。

a.sort(sortArray);

sortArrayすでに 2 つの引数が必要であるため、そのまま機能し、自動的v1v2渡されます。

于 2013-07-29T15:20:37.390 に答える