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;
    });
});
War es hilfreich?

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

  1. 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.
  2. Der anonyme Funktion function (category)... akzeptiert ein Argument, das bestimmte Element, um es in dieser Iteration übergeben und das Mapping-Ergebnis zurück.
  3. zurückgegeben das Ergebnis ist ein Funktionsfilter auf businesses von aufrufen und es eine Funktion zu sagen, wie Unternehmen gefiltert werden sollen.
  4. Die anonyme Funktion function (business)... akzeptiert ein Argument, das bestimmte Element an sie übergeben als businesses iteriert und kehrt jene, die die Kategorie Argument in der äußeren Funktion scoped entsprechen.
  5. 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"]

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top