0

許してください、しかし私はjsの基本と基本的な関数を書く/呼び出す方法を知っています、しかしこの場合私は私のセット(非アルファ)の順序と一致するようにDBからのカテゴリーのアルファソートリストを一致させようとしています以下に指定されている上記のカテゴリの(これは、返されるカテゴリの順序をマップする方法について尋ねた質問で別のユーザーが使用するために提案されたコードです)。しかし、その人のコードの答えを自分のコードに統合する方法がわかりません。

別のサンプルリスト(DBから取得するものを模倣するため)に対して実装されていることと、switch caseステートメントでそれを呼び出してHTMLをカテゴリ名にラップし、マップされた順序でWebページに返す方法を確認するだけです。欲しいのは大いに役立つでしょう。明らかなことが判明した場合は申し訳ありません。私はこれらの問題に遭遇したときに何ができるかを学ぼうとしています。ありがとう!

var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) {
    return businesses.filter(function (business) {
        return business.category === category;
    });
});
4

1 に答える 1

2

map()与えられたコードは、配列の操作などのいくつかの便利な関数を備えたjQueryJavaScriptライブラリを使用している可能性が最も高いようです。

businessesこのコードは、注文する必要のあるビジネスを含むjQueryオブジェクト/配列があることを前提としています。外から読んだら

  1. 配列内の各アイテムを順番にマップ関数に渡します。map関数は、各アイテムをどのようにマッピングするかを指定する関数を取ります。
  2. 匿名関数function (category)...は1つの引数を受け入れます。この反復で渡された特定のアイテムは、マッピング結果を返します。
  3. 返される結果は、filterを呼び出しbusinessesて、ビジネスをどのようにフィルタリングするかを指定する関数を渡す関数です。
  4. 匿名関数function (business)...は引数を受け入れ、渡された特定のアイテムがbusinesses繰り返され、外部関数でスコープされたカテゴリ引数に一致するアイテムを返します。
  5. 最終結果は、カテゴリ配列順に並べられたアイテムの配列です。[ 'F', 'C', 'A1', 'A2', 'A3' ]

元の問題に戻る場合は、クライアントの好みに基づいてカテゴリのリストを注文する必要があります。順序をマップするオブジェクトリテラルを作成しましょう

var map = {
    F : 5,
    C : 3,
    A1 : 1,
    A2 : 4,
    A3 : 2
}

このマップを使用して、sortメソッドを使用して配列を並べ替えることができます

var array = ['F', 'C', 'A1', 'A2', 'A3'];

array.sort(function(a,b) {
    return map[a] - map[b];
});

これは私たちを返します["A1", "A3", "C", "A2", "F"]

于 2010-08-16T22:44:25.907 に答える