Pregunta

Soy nuevo en el subrayado, así que perdón mi ignorancia.

¿Hay una manera rápida y fácil de hacer lo siguiente:

men:{gerald:{"name":"Gerald", "age":50},mike:{"name":"Mike", "age":50},charles:{"name":"Charles", "age":50}}

Donde el nombre es Mike - establecido en la posición 1 (índice 0)

Solo quiero barajar los elementos para que el primer elemento se establezca con el nombre que elijo.

Cualquier ayuda más que bienvenida.

¿Fue útil?

Solución

No necesitas subrayar.js. Array.sort lo hará bien:

myJson.men.sort(function(a, b) { return b.name == "Mike" })

Esto no es realmente el uso del modelo, pero hace el trabajo.


Además, tu JSON no es válido. Necesita soportes cuadrados alrededor de la matriz, no rizos:

{
    "men": [{
        "name": "Gerald", "age": 50
    },{
        "name": "Mike", "age": 50
    },{
        "name": "Charles", "age": 50
    }]
}


Editar:

No puedes "ordenar" ese json. Lo que está pidiendo que haga es pedir una matriz asociativa. Esto no tiene ningún sentido. Si el pedido de los elementos es importante, desea una matriz, no un objeto.

Otros consejos

Ya que _.suffle baraja todos los elementos, necesitaría empalmar todos los elementos, pero los predefinidos, barajarlos y concatenar los elementos barajados a una matriz existente que contiene el elemento predefinido.

Algo como:

var orig = [1, 2, 3, 4, 5],
    shuffled = [];

shuffled[0] = orig[2]; // 3 is the predefined element

shuffled = shuffled.concat( _.shuffle( orig.slice(0,2).concat( orig.slice(3) ) ) );

que obtiene la matriz sin el elemento predefinido, la baraja y la concatena al shuffled Array, que contiene la variable predefinida como su primer elemento.

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