JavaScript Zahl in ein sortiertes Array einfügen



  • Hallo,

    ich habe ein sortiertes Array etwa der form:

    1,3,4,6,7

    jetzt möchte ich z.B. die Zahl 2 einfügen, danach soll der Inhalt so aussehen:

    1,2,3,4,6

    Die Länge des Arrays soll sich nicht verändern und deshalb muß das letzte element raus fliegen.
    Im Prinzip werden die nachfolgenden Elmente nur mit den Vorgänger überschrieben, aber ich bekomme dir Logik einfach nicht hin.

    Thx



  • Original erstellt von <Dieter>:
    **Hallo,

    ich habe ein sortiertes Array etwa der form:

    1,3,4,6,7

    jetzt möchte ich z.B. die Zahl 2 einfügen, danach soll der Inhalt so aussehen:

    1,2,3,4,6

    Die Länge des Arrays soll sich nicht verändern und deshalb muß das letzte element raus fliegen.
    Im Prinzip werden die nachfolgenden Elmente nur mit den Vorgänger überschrieben, aber ich bekomme dir Logik einfach nicht hin.

    Thx**

    Ach ja der Code:

    function insertsort(array1,inarray)
    {
    var hilf;
    var j,k;

    for(var i=0; i<array1.length-1; i++,j++)
    {
    hilf = array1[i];

    if(inarray[0] < array1[i])
    {
    array1[i] = inarray[0];
    j++;
    }
    array1[j] = hilf;
    }

    }



  • Du könntest einfach das letzte Element überschreiben und dann die Methode sort des Arrays aufrufen oder einfach anhängen, sortieren und das letzte Element wieder löschen.
    Oder du gehst das Array von hinten her durch und verschiebst die Elemente jeweils um eine Position nach hinten. Falls das Folge-Element kleiner ist beendest du das verschieben und fügst das neue Element an der aktuellen Stelle ein (überschreiben)

    Es gibt viele verschiedene Möglichkeiten. Nur soviel noch: Wenn das letzte Element kleiner oder gleich dem neu Einzufügenden ist brauchst du gar nichts zu unternehmen.


Anmelden zum Antworten