2017-05-11 2 views
0

Ich habe eine sehr große Array Struktur in Livecode, wie:Wie kann man eine Array-Struktur leeren?

temp["A"] 
temp["A"]["B"] 
temp["A"]["B"]["c"] 
temp["A"]["D"] 
temp["A"]["D"]["E"][...] 
... 

ich die Struktur erhalten will, sondern nur in den Werten leer setzen. Welche rekursive Prozedur sollte ich verwenden? Ich weiß nicht, wie Arrays rekursiv übergeben werden.

+0

Siehe' foreach' Abschnitt .com/Wiederholen – ThrowingSpoon

+0

Als eine Anmerkung, müssen Sie technisch nur leer in das letzte Element, das ist .. leer in temp setzen ["A"] ["B"] ["C"] – MadPink

+0

Nein, mein Problem ist, dass ich die Struktur nicht kenne, also brauche ich eine rekursive Funktion, die alle Schlüssel findet und dann leer macht, irgendwelche Ideen? – MaxV

Antwort

0

max.

Etwas wie folgt aus:

on mouseUp 
repeat with y = 1 to 10 
    repeat with u = 1 to 10 
    put random(99) into myArray[u][y] 
    end repeat 
end repeat 
breakpoint--to see array 
    repeat with y = 1 to 10 
    repeat with u = 1 to 10 
    put "" into myArray[u][y] 
    end repeat 
end repeat 
end mouseUp 
+0

Nein, mein Problem ist, dass ich die Struktur nicht kenne, also brauche ich eine rekursive Funktion, die alle Schlüssel findet und dann leer lässt, irgendwelche Ideen? – MaxV

1

ich mein Problem gefunden, kann ich nicht die gleiche Array ändern, die ich verwende wiederholen oder rekursiven Funktionen reisen. Ich brauche 2 Arrays, das zweite ist die leere Kopie des ersten. Das ist also der Code:

function svuotaArray tarr 
    repeat for each key tKey in tArr 
    put empty into tArr2[tKey] 
    put svuotaArray(tArr[tkey]) into tArr2[tkey] 
    end repeat 
    return tArr2 
end svuotaArray 
1

Hmm ... so etwas wie die folgenden (nicht getestet) in aktuellen Versionen von Livecode funktionieren soll. Ich kann nicht die Freigabe erinnern, dass die Fähigkeit Array-Elemente durch Bezugnahme obwohl passieren hinzugefügt: //livecode.wikia: zur Verwendung von `repeat`, sollte ein guter Anfang http

command ClearElements @xArray 
    if xArray is an array then 
    repeat for each key tKey in xArray 
     ClearElements xArray[tKey] 
    end repeat 
    else 
    put empty into xArray 
    end if 
end ClearElements 
Verwandte Themen