JavaScriptの実装質問:この関数を表示する方法表示値
-
29-09-2019 - |
質問
私を許してください、しかし私はJSの基本と基本関数を書き込む/呼び出す方法を知っていますが、この場合、私はDBのカテゴリのアルファソートリストを私のセット(非アルファ)注文と一致させるために一致させようとしています以下に指定されたカテゴリの(これは、返されるカテゴリの順序をマップする方法について尋ねた質問で、別のユーザーが使用するために提案されたコードです)。ただし、その人のコード回答を自分のコードに統合する方法を理解することはできません。
別のサンプルリストに対して実装されているのを見ただけで(DBから取得するものを模倣するために)欲しいのは大いに役立つでしょう。明らかであることが判明した場合は申し訳ありません。私はこれらの問題に遭遇したときに私ができることを学ぼうとしています。ありがとう!
var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) {
return businesses.filter(function (business) {
return business.category === category;
});
});
解決
指定されたコードは、jquery javascriptライブラリを使用している可能性が最も高いようです。 map()
アレイを操作するため。
コードは、jQueryオブジェクト /配列があると想定しています。 businesses
注文する必要があるビジネスが含まれています。外から読んだら
- 配列内の各アイテムをマップ関数に順番に渡します。マップ関数は、各アイテムのマッピング方法を示す関数を取ります。
- 匿名関数
function (category)...
1つの引数を受け入れます。特定のアイテムは、この反復でそれに渡され、マッピング結果を返します。 - 返された結果は、フィルターを呼び出す関数です
businesses
そして、ビジネスをどのようにフィルタリングすべきかを示す機能を渡します。 - 匿名関数
function (business)...
議論を受け入れ、特定のアイテムはそれに渡されましたbusinesses
反復され、外側関数でスコープされたカテゴリ引数に一致するものを返します。 - 最終結果は、カテゴリアレイによって注文されたアイテムの配列です
[ '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"]
所属していません StackOverflow