Question

Je suis nouveau à souligner si le pardon de mon ignorance.

Y at-il un moyen rapide et facile de faire ce qui suit:

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

Si le nom est Mike - ensemble en position 1 (indice 0)

Je veux juste mélanger les éléments de sorte que le premier élément est défini par le nom que je choisis.

Toute aide plus que bienvenue.

Était-ce utile?

La solution

Vous n'avez pas besoin underscore.js. Array.sort fera l'affaire:

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

Ce n'est pas vraiment l'usage modèle de genre, mais il fait le travail.


En outre, votre JSON est invalide. Vous avez besoin de crochets autour du tableau, pas Curly:

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


Edit:

Vous ne pouvez pas « ordre » que JSON. Qu'est-ce que vous demandez à faire est de l'ordre d'un tableau associatif. Cela ne fait aucun sens. Si l'ordre des éléments est important, vous voulez un tableau, pas un objet.

Autres conseils

Depuis _.suffle brouille tous les éléments, vous aurez besoin de raccorder tous les éléments, mais celui prédéfini, mélangez, et concaténer les éléments brassés à un tableau existant qui contient l'élément prédéfini.

Quelque chose comme:

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) ) ) );

qui obtient la matrice sans l'élément prédéfini, la mélange, et concatène à la matrice de shuffled, qui contient la variable prédéfinie en tant que son premier élément.

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