Javascript Implementierung Frage: wie diese Funktion Anzeigewert machen
-
29-09-2019 - |
Frage
Bitte verzeihen Sie mir, aber ich js Grundlagen kennen und wie man Schreib- / nennen eine Grundfunktion, aber in diesem Fall ich versuche, aus der DB eine Alpha sortiert Liste der Kategorien zu passen gegen meinen Satz entsprechen (Nicht- alpha) Reihenfolge der Kategorien, wie unten angegeben (dieser Code ist vorgeschlagen für die Verwendung durch einen anderen Benutzer auf eine Frage, die ich fragte, wie die Reihenfolge der Kategorien zur Karte zurückgegeben). Allerdings kann ich nicht herausfinden, wie diese Person Code Antwort in meinen eigenen Code zu integrieren.
Sehen Sie es einfach gegen ein anderes Beispiel Liste implementiert (zu imitieren, was ich von der DB greifen würde) und wie würde ich es in einem Schaltergehäuse Anweisung aufrufen meine html um die Kategorienamen zu wickeln und wieder auf die Web-Seite in der kartiert Ordnung ich möchte sehr viel helfen. Sorry, wenn es sich herausstellt offensichtlich. Ich versuche zu lernen, was ich kann, wie ich diese Probleme auftreten. Dank!
var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) {
return businesses.filter(function (business) {
return business.category === category;
});
});
Lösung
Der Code gegeben sieht höchstwahrscheinlich die jQuery-JavaScript-Bibliothek zu verwenden, die für die Manipulation von Arrays einige nützliche Funktionen wie map()
hat.
Der Code geht davon aus, dass Sie ein jQuery-Objekt / Array, businesses
haben, die die Unternehmen enthält, die Sie benötigen, um. Wenn wir es von außen eingelesen
- passiert jedes Element in der Matrix wiederum in die Map-Funktion. Die Map-Funktion nimmt eine Funktion zu sagen, wie jedes Element zugeordnet werden soll.
- Der anonyme Funktion
function (category)...
akzeptiert ein Argument, das bestimmte Element, um es in dieser Iteration übergeben und das Mapping-Ergebnis zurück. - zurückgegeben das Ergebnis ist ein Funktionsfilter auf
businesses
von aufrufen und es eine Funktion zu sagen, wie Unternehmen gefiltert werden sollen. - Die anonyme Funktion
function (business)...
akzeptiert ein Argument, das bestimmte Element an sie übergeben alsbusinesses
iteriert und kehrt jene, die die Kategorie Argument in der äußeren Funktion scoped entsprechen. - Das Endergebnis ist eine Reihe von Elementen der Kategorie Array
[ 'F', 'C', 'A1', 'A2', 'A3' ]
bestellt
Wenn wir gehen zurück auf die ursprüngliche Problem , müssen Sie eine Liste der Kategorien auf die Kundenpräferenz basiert auf Bestellung. Lassen Sie uns erstellen ein Objektliteral die Bestellung zur Karte
var map = {
F : 5,
C : 3,
A1 : 1,
A2 : 4,
A3 : 2
}
Wir können diese Karte verwenden, um das Array mit der sort
Methode bestellen
var array = ['F', 'C', 'A1', 'A2', 'A3'];
array.sort(function(a,b) {
return map[a] - map[b];
});
Das gibt uns ["A1", "A3", "C", "A2", "F"]