Array leeren
Christopher
- javascript
Hi,
ich muss in meinem Script Arrays leeren können, weil bei jedem Durchlauf die Elemente neu zugeordnet werden. Dabei gerät alles durcheinander und ich kapier nicht, wieso es in Javascript keine Funktion wie unset() aus php gibt. Wie auch immer, eine Arraystruktur könnte wiefolgt ausschauen:
Array ([0] => Array([0] => 1, [1] => 16) [1] => 5 [2] => Array ([0] => 12 [1] => 19) )
In einem anderen Postings habe ich gelesen: (t Name der Array-variable)
while (t.length) t.pop()
Fand ich recht schick, aber scheint nicht zu klappen.
Kann mir jemand nen Tipp geben? Danke!
Die Arrays sind ja global. Wenn ich sie in einer Funktion mit delete lösche und danach neu deklariere; geschieht das nicht alles auf lokaler Ebene?
Gibt es wie bei php (global $var_name) einen Aufruf, der die Variable als global verifiziert?
Hallo Christopher
Die Arrays sind ja global. Wenn ich sie in einer Funktion mit delete lösche und danach neu deklariere; geschieht das nicht alles auf lokaler Ebene?
Nur, wenn du sie mit var deklarierst.
(s. Variablen und Werte dort unter "Erläuterung")
Auf Wiederlesen
Detlef
Mhm...
wie würde ich denn, z.b., nur einen einzigen Eintrag aus dem Array entfernen. Nehmen wir an, das Array schaut wiefolgt aus:
Array (
[0] => 2
[1] => 6
[2] => 9
)
Ich habe jetzt vor, das Element 1 mit dem Wert 6 zu entfernen und die nachfolgenden Elemente eins "raufrutschen" zu haben.
Gibt es dafür eine Funktion in JS?
Hallo,
Array (
[0] => 2
[1] => 6
[2] => 9
)Ich habe jetzt vor, das Element 1 mit dem Wert 6 zu entfernen und die nachfolgenden Elemente eins "raufrutschen" zu haben.
Die splice()-Methode leistet das (wobei "raufrutschen" im obigen Sinn "runterrutschen" im Indexwert-Sinn bedeutet):
var bla=[2,6,9];
bla.splice(1,1);
alert(bla); // 2,9
MfG, Thomas
wie würde ich denn, z.b., nur einen einzigen Eintrag aus dem Array entfernen. Nehmen wir an, das Array schaut wiefolgt aus:
Array (
[0] => 2
[1] => 6
[2] => 9
)
Das ist kein Array, sondern sieht eher nach einem Hash in Perl aus.
entweder:
var myArray = Array(2, 6, 9);
oder
var myArray = [2, 6, 9];
Ich habe jetzt vor, das Element 1 mit dem Wert 6 zu entfernen und die nachfolgenden Elemente eins "raufrutschen" zu haben.
Dafür gibt es keine Funktion musst du dir selber schreiben:
Array.prototype.remove = function(nr)
{
for(var i = nr; i < this.length - 1; i++) this[i] = this[i + 1]
this.pop();
return this;
}
var a = [2,6,9];
a.remove(1);
alert(a);
Struppi.
Hallo Christopher,
»» Die Arrays sind ja global. Wenn ich sie in einer Funktion mit delete lösche und danach neu deklariere; geschieht das nicht alles auf lokaler Ebene?
Nein, wenn es ein globales Objekt ist, sollt es natürlich nicht gelöscht werden. Es reicht ja, wenn Du es neu anlegst
var globalesarray = new Array();
//dann Deine Zuweisungen...
function foo(){
globalesarray = new Array();
}
Wenn Das Array in foo() neu initialisiert wurde, ist es, global noch bekannt aber inhaltslos - was Du ja wolltest. In der Funktion darfst Du das Array nur nicht neu anlegen mit "var", sonst wäre es ein lokles Array.
Mit freundlichem Gruß
Micha
echo $begrüßung;
ich muss in meinem Script Arrays leeren können,
Wie wäre es mit: arrayvariable = new Array();
echo "$verabschiedung $name";
hallo,
ich muss in meinem Script Arrays leeren können
Was du unter "leeren" verstehst, müßtest du eventuell erläutern. Wenn dein Beispiel
Array ([0] => Array([0] => 1, [1] => 16) [1] => 5 [2] => Array ([0] => 12 [1] => 19) )
in Javascript so aussieht, daß du diesen Array einer Variablen zuweist:
variable = newArray([0] => 1, [1] => 16) [1] => 5 [2] => Array ([0] => 12 [1] => 19) )
(was mit dem Operator => schwierig werden könnte), kannst du anstelle des "Arrays" deine Variable ganz einfach neu füllen:
variable = newArray(irgendetwas)
In einem anderen Postings habe ich gelesen: (t Name der Array-variable)
while (t.length) t.pop()
Fand ich recht schick, aber scheint nicht zu klappen.
Dazu müßtest du dein Problem vielleicht doch etwas genauer beschreiben.
Grüße aus Berlin
Christoph S.