ホームページ  >  に質問  >  本文

JavaScript - 比較関数に関する質問

リーリー
为情所困为情所困2663日前848

全員に返信(4)返信します

  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 11:08:44

    これは、特定のデータ構造を比較するために作られたツール機能です。たとえば、データ構造の形式は次のとおりです:

    リーリー

    現時点では、一般的な sort メソッドは次の形式で記述する必要があります:

    リーリー

    このコードの問題点:

    1. valueパラメータはハードコーディングされているため、他のフィールドを並べ替えるときに再コーディングする必要があります。

    2. 1 / -1 を返すロジックは冗長で退屈です。

    3. ソート用の匿名関数を直接記述することは、Little Red Book の時代には十分に読みにくくなりました (現在ではアロー関数があるため、実際には大きな問題ではありません)。

    つまり、上記のケースでは、レッドブックの著者は、[特定のフィールドを並べ替えるための] 関数を生成するための一般的なツール関数を設計しました。このユーティリティ関数を呼び出すと、返されるのはソートされた結果 (いわゆる高階関数) ではなく、新しい関数であることに注意してください。

    このパッケージを適用した後のコードは次のようになります:

    リーリー

    これはビジネス ロジックを簡素化する役割を果たします。

    返事
    0
  • 淡淡烟草味

    淡淡烟草味2017-07-05 11:08:44

    理解できないのは、2 つのオブジェクトの特定の属性のサイズを比較すると -1 が返されるということです
    createComparisonFunction("test")({'test': 1}, {"test": 2})

    返事
    0
  • 巴扎黑

    巴扎黑2017-07-05 11:08:44

    関数を呼び出すときは、2 つのステップで見てください。まず、createComparisonFunction()传入比较的字段。在createComparisonFunction()函数内,返回一个匿名函数。同时由于匿名函数处在createComparisonFunction()内,所以你对createComparisonFunction()传入的参数propertyName对匿名函数也有效存在。
    通过上一步,你已经得到的匿名函数包含propertyName,此时你就可以传入你要比较的两个对象,在函数内比较他们的propertyName 属性を通じて比較結果を返します。

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-07-05 11:08:44

    これを高階関数といいます。

    返事
    0
  • キャンセル返事