Question

S'il vous plaît pardonnez-moi, mais je ne sais bases js et comment écrire / appeler une fonction de base, mais dans ce cas, je suis en train de faire correspondre une alpha triée liste des catégories de la DB pour correspondre contre mon ensemble (non alpha) ordre desdites catégories comme indiqué ci-dessous (ce code est suggéré pour une utilisation par un autre utilisateur sur une question que je posais sur la façon de cartographier l'ordre des catégories retourné). Cependant, je ne peux pas comprendre comment intégrer la réponse de code de cette personne dans mon propre code.

Il suffit de le voir mis en œuvre contre une autre liste d'exemples (pour mimer ce que je saisir de la DB) et comment je l'appeler dans une déclaration de cas de commutation pour envelopper mon html autour des noms de catégories et de les retourner à la page Web dans la cartographiés afin que je veux aiderait beaucoup. Désolé si elle se révèle être évidente. Je suis en train d'apprendre ce que je peux que je rencontre ces problèmes. Merci!

var categories = [ 'F', 'C', 'A1', 'A2', 'A3' ].map(function (category) {
    return businesses.filter(function (business) {
        return business.category === category;
    });
});
Était-ce utile?

La solution

Le code donné ressemble plus susceptibles d'utiliser la bibliothèque JavaScript jQuery qui a des fonctions utiles telles que map() pour manipuler des tableaux.

Le code suppose que vous avez un objet jQuery / tableau, businesses qui contient les entreprises que vous devez commander. Si on le lit de l'extérieur

  1. passer chaque élément du tableau à son tour dans la fonction de la carte. La fonction de carte prend une fonction de dire comment chaque élément doit être mis en correspondance.
  2. La fonction anonyme function (category)... accepte un argument, l'élément particulier qui lui est passé dans cette itération et retourne le résultat de la cartographie.
  3. le résultat retourné est une fonction d'appel filtre businesses et le passage d'une fonction à dire comment les entreprises doivent être filtrés.
  4. La fonction anonyme function (business)... accepte un argument, l'élément particulier qui lui est passé comme businesses est itéré et retourne ceux qui correspondent à l'argument de la catégorie scope dans la fonction externe.
  5. Le résultat final est une gamme d'articles commandé par la [ 'F', 'C', 'A1', 'A2', 'A3' ] de réseau de catégorie

Si nous revenons à la problème initial , vous devez commander une liste des catégories en fonction de la préférence du client. Créons un littéral d'un objet à l'ordre du

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

Nous pouvons utiliser cette carte pour commander le tableau en utilisant la méthode sort

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

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

Ce rendement nous ["A1", "A3", "C", "A2", "F"]

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top