Frage

Ich bin neu, um meine Unwissenheit zu verzeihen.

Gibt es eine schnelle und einfache Möglichkeit, Folgendes zu tun:

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

Wo Name ist Mike - Set in Position 1 (Index 0)

Ich möchte nur die Elemente mischen, damit das erste Element unter dem von mir ausgewählten Namen festgelegt wird.

Jede Hilfe mehr als willkommen.

War es hilfreich?

Lösung

Sie brauchen nicht unterstrich.js. Array.sort wird es gut machen:

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

Dies ist nicht wirklich die Art der Art von Art, aber es macht den Job.


Auch Ihr JSON ist ungültig. Sie benötigen quadratische Klammern um das Array, keine Locken:

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


Bearbeiten:

Sie können diesen JSON nicht "bestellen". Was Sie tun, ist zu bestellen, ein assoziatives Array zu bestellen. Dies macht keinen Sinn. Wenn die Reihenfolge der Elemente wichtig ist, möchten Sie ein Array, kein Objekt.

Andere Tipps

Seit _.suffle Durch alle Elemente müssten Sie alle Elemente ausspleifen, aber die vordefinierte, mischen sie und verkettet die gemischten Elemente zu einem vorhandenen Array, das das vordefinierte Element enthält.

Etwas wie:

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

Das bekommt das Array ohne das vordefinierte Element, schlurft es und verkettet es dem shuffled Array, das die vordefinierte Variable als erstes Element enthält.

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