7 Stimmen

Das Verschieben des Array-Werts zum ersten Index

var Config = {
   Windows: ['apfel', 'mango', 'zitrone']
}

Ich habe eine Bedingung und basierend darauf möchte ich den Wert "Banane" in mein Array einfügen.

If (Bedingung erfüllt) {
      Config.Windows.unshift('banane');
      Windows: ['banane', 'apfel', 'mango', 'zitrone']
      Config.Windows.reverse();
      // Der Weg, wie die Array-Elemente jetzt umgekehrt sind und zuerst auf die Banane zugegriffen wird.
    } else { 
      Config.Windows.reverse();     
} 

Es passiert nicht... wenn ich Config.Windows in meiner anderen Funktion verwende, gibt es überhaupt keinen banane Wert.

for each(var item in Config.Windows.reverse()) {
 Ti.API.info(item);
 //Dies druckt nicht "banane"

7voto

NT3RP Punkte 14814

Es gibt viele Möglichkeiten, wie Sie den Wert an den Anfang des Arrays schieben können. Sofort fallen mir zwei Möglichkeiten ein:

  • Erstellen Sie ein neues Array und ersetzen Sie das alte

    if (Bedingung) {
        Config.Windows = ['Banane'].join(Config.Windows)
        Config.Windows.reverse();
    } else {
        Config.Windows.reverse();
    }
  • Basierend auf dem, was Sie gesagt haben, würde es mehr Sinn machen, das Array immer umzudrehen und dann Ihren Wert hinzuzufügen:

    // Ursprüngliches Array: ['Apfel','Mango','Zitrone']
    
    Config.Windows.reverse(); //['Zitrone','Mango','Apfel']
    if (Bedingung) {
        //Dies wird das gleiche Ergebnis wie Ihr Code liefern
        Config.Windows.push("Banane"); //['Zitrone','Mango','Apfel', 'Banane']
    }

5voto

Jon Punkte 51

"Der Unshift wird von IE nicht unterstützt, daher erklärt dies, warum es nicht funktioniert."

http://msdn.microsoft.com/de-de/library/ie/ezk94dwt(v=vs.94).aspx

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X