kostenloser Webspace werbefrei: lima-city


Array Element löschen und andere nachschieben.

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    c143

    c143 hat kostenlosen Webspace.

    Hallo
    Folgendes Problem.
    Ich habe einen Array mit zum Beispiel
    var Array = ['A','B','C','D','E'];

    Jetzt lösche ich zum Beispiel das C mit der Funktion
    Arr.splice(2, 1);
    Der Array hat jetzt zwar kein C mehr, aber er hat nur noch die Indexe 0, 1, 3, 4, 5. Der 2. wurde durch splice gelöscht. Jetzt würde ich gerne die anderen nachschieben:

    0 => A
    1 => B
    2 => D
    3 => E


    Hat jemand eine Idee? Danke und Gruss.

    Beitrag zuletzt geändert: 14.10.2013 12:27:55 von c143
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Autor dieses Themas

    c143

    c143 hat kostenlosen Webspace.

    tchab schrieb:
    Nein, du hast dein "altes" Array und ein temporäres neues. Wenn das neue fertig ist ersetzt du einfach das Alte …

    Ist eine Lösung, aber einfach irgendwie hingemurkst. Ich warte noch auf andere Antworten, versuch sonst am Abend selbst noch irgendwas hinzukriegen und sonst greif ich auf deine zurück.
    Danke
  4. Hi,

    ehrlich gesagt verstehe ich nicht, welches Problem du hast, denn das was du beschreibst ist zumindest in Javascript nicht der Fall. Ich würde deswegen gerne sehen, wie dein Code dazu aussieht, denn ich würde fast drauf wetten, dass dort der Fehler ist.
    Weil so wie du das beschreibst ist es nicht so wie es ist, Beispiel gefällig:
    // zuerstmal 2 Hefer-variablen...
    var out = '', i;
    // erzeuge folgendes Array: arr = [0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd', 4 => 'e', 5 => 'f']
    var arr = 'a0b0c0d0e0f'.split(0);
    // entnehme ein Element 
    var spl = arr.splice(2,1);
    // spl enthält jetzt dieses Array: [0 => c]
    for(i in spl){out += 'spl[' + i + '] => "' + spl[i] + '"\n'}
    alert(out);
    // und arr sieht so aus: [0 => a, 1 => b, 2 => d, 3 => e, 4 => f]
    // das kann man auch so beweisen:
    out = '';
    for(i in arr){out += 'arr[' + i + '] => "' + arr[i] + '"\n'}
    alert(out);
    Ich verstehe also nicht, welches Problem hierbei auftreten soll!

    Mit freundlichen Grüßen
  5. Autor dieses Themas

    c143

    c143 hat kostenlosen Webspace.

    nemoinho schrieb:
    Hi,

    ehrlich gesagt verstehe ich nicht, welches Problem du hast, denn das was du beschreibst ist zumindest in Javascript nicht der Fall. Ich würde deswegen gerne sehen, wie dein Code dazu aussieht, denn ich würde fast drauf wetten, dass dort der Fehler ist.
    Weil so wie du das beschreibst ist es nicht so wie es ist, Beispiel gefällig:
    // zuerstmal 2 Hefer-variablen...
    var out = '', i;
    // erzeuge folgendes Array: arr = [0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd', 4 => 'e', 5 => 'f']
    var arr = 'a0b0c0d0e0f'.split(0);
    // entnehme ein Element 
    var spl = arr.splice(2,1);
    // spl enthält jetzt dieses Array: [0 => c]
    for(i in spl){out += 'spl[' + i + '] => "' + spl[i] + '"\n'}
    alert(out);
    // und arr sieht so aus: [0 => a, 1 => b, 2 => d, 3 => e, 4 => f]
    // das kann man auch so beweisen:
    out = '';
    for(i in arr){out += 'arr[' + i + '] => "' + arr[i] + '"\n'}
    alert(out);
    Ich verstehe also nicht, welches Problem hierbei auftreten soll!

    Mit freundlichen Grüßen


    Okey danke, Fehler meinerseits. Dann liegt der Fehler in meinem Script wohl anders wo, aber zumindest was ähnliches. Aber danke für das Script um sicher zu gehen.
  6. c143 schrieb:... Hat jemand eine Idee? ...
    yep!

    tchab schrieb:
    1. Wie wäre es damit, einfach ein neues Array zu befüllen und damit das alte zu ersetzen? ...

    2. Schreib halt eine Funktion dafür, die dein altes Array nimmt und das neue zurück gibt. ;) Dann musst du immer nur die Funktion aufrufen.

    3. Nein, du hast dein "altes" Array und ein temporäres neues. Wenn das neue fertig ist ersetzt du einfach das Alte ?
    1.: warum? 2.: warum? 3.: ???? :puke:
    tchab, du schaffst es immer, einem keinen rat zu geben und dafür (in diesem fall 15) gülden zu kassieren.

    nemoinho schrieb:
    ... for(i in spl){out += 'spl[' + i + '] => "' + spl + '"\n'}
    genau da hast den fehler:
    Timestamp: 10/15/2013 11:20:59 PM
    Error: SyntaxError: unterminated string literal
    Source File: ...
    Line: xx, Column: yy
    Source Code:
    for(i in spl){out += 'spl[' + i + '] => "' + spl + '"


    und was du brachst @c143 ist eig. so einfach: click (mit source)
  7. @czibere
    Davon mal abgesehen, dass mir deine Lösung besser gefällt,
    habe ich keinen Fehler bei nemoinho's Skript.
    Weder lokal noch bei jsfiddle.net oder codepen.io
  8. kgreen schrieb:
    @czibere
    Davon mal abgesehen, dass mir deine Lösung besser gefällt,
    habe ich keinen Fehler bei nemoinho's Skript.
    Weder lokal noch bei jsfiddle.net oder codepen.io
    die zeile ist eindeutig zitiert, ohne änderung durch mich, kopiert aus 'FF/tools/Web Developer/Error Console'.
    jsfiddle.net ist für mich kein begriff/referenz und daher kann ich nicht sagen, was dort abgeht (mal abgesehen von der tatsache, dass 'js' selten mit hosts zu tun hat :(

    ich wollte dabei nur @c143 helfen und der rest ist mir ...

    und ich bin da auch einverstanden, dass man uns (czibere/kgreen) 5 gulden abzieht,
    weil das [teils] off topic ist ;)
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!