Pregunta

Por favor, perdóname, pero sí sé js conceptos básicos y la forma de escritura / llamar a una función básica, pero en este caso estoy tratando de coincidir con un alfa lista de categorías de la base de datos para que coincida en contra de mi conjunto (no ordenado alfa) orden de las citadas categorías, como se especifica a continuación (este código es sugerido para su uso por otro usuario en una pregunta que hice acerca de cómo asignar el orden de las categorías que se devuelve). Sin embargo, no puedo encontrar la manera de integrar la respuesta de código de esa persona en mi propio código.

Sólo con ver que implementa contra otro ejemplo de lista (para imitar lo que iba a agarrar de la BD) y cómo lo llamaría en una declaración de caso interruptor de envolver mi html alrededor de los nombres de las categorías y devolverlos a la página web en el Quiero asignada orden sería de gran ayuda. Lo siento si resulta ser obvio. Estoy tratando de aprender lo que puedo encontrar, ya que estos problemas. Gracias!

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

Solución

Las miradas código dado con mayor probabilidad de estar usando la biblioteca jQuery JavaScript que tiene algunas funciones útiles, tales como map() para manipular matrices.

El código se supone que tiene un objeto jQuery / matriz, businesses que contiene las empresas que necesita orden. Si lo leemos desde afuera hacia adentro

  1. pasar cada elemento de la matriz a su vez en la función de mapa. La función de mapa tiene una función para decir cómo cada elemento debe ser mapeada.
  2. El function (category)... función anónima acepta un argumento, el artículo en particular se le ha pasado en esta iteración y devolverá el resultado de la asignación.
  3. el resultado devuelto es una función de filtro en llamar businesses y pasándolo una función a decir cómo se deben filtrar las empresas.
  4. El function (business)... función anónima acepta un argumento, el artículo particular que se le pasa como businesses se repite y vuelve aquellos que coinciden con la categoría de ámbito argumento de la función externa.
  5. El resultado final es una serie de artículos pedidos por el [ 'F', 'C', 'A1', 'A2', 'A3' ] categoría array

Si volvemos a la problema original , es necesario ordenar una lista de categorías en función de la preferencia del cliente. Vamos a crear un literal de un objeto para asignar el pedido

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

Puede usar este mapa para ordenar la matriz mediante el método sort

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

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

Esto devuelve nosotros ["A1", "A3", "C", "A2", "F"]

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top