Frage

Das ist ein bisschen schwer für mich zu artikulieren, aber in PHP kann man sagen, so etwas wie:

$myArray['someindex'] = "my string";

und wenn kein Index genannt, dass, wird es schaffen / assign den Wert, und wenn es ein Index ist, wird es den vorhandenen Wert überschreibt.

Vergleichen Sie dies mit Javascript, wo heute hatte ich überprüft tun so:

if (!myObject[key]) myObject[key] = "value";

Ich weiß, das ein bisschen ein picky Punkt sein kann, aber gibt es einen Namen für die Fähigkeit von PHP (und vielen anderen Sprachen), um diese Kontrollen auf eigene Faust zu tun, im Gegensatz zu den ausführlicheren (sprich: PITA) -Methode von Javascript?

Bearbeiten

ich verwirrt mich das zu fragen. Angenommen, Sie zu dieser Struktur hinzufügen möchten:

myobject = {
    holidays : {easter : {date : 4/20/2010,
                          religion : Christianity}
                holi : {date : 3/10/2010,
                        religion : hindu} 
}

Ich hatte ein Problem heute, wo ich tabellarische Daten empfing, und ich wollte es in einen Baum setzen Art wie dies durch ein Objekt zu bauen.

Wenn ich meine Schleifen begann, hatte ich Probleme damit neue Indizes wie myobject['holidays'][thisVariable][date] = 4/20/2010 wenn der Baum nicht vor allem zu diesem Punkt gebaut worden war.

Ich werde ein Code-Beispiel aus meinem anderen Computer greifen, wenn dies nicht klar ist, tut mir leid für die Armen denken.

War es hilfreich?

Lösung

Ich würde vermuten, 'auto-vivification' http://en.wikipedia.org/wiki/Autovivification von Perl relevant sein könnte, aber es funktioniert anders, als Sie beschrieben. Die Wiki-Seite hat eine gute Zusammenfassung. Andere Sprachen wie Ruby unterstützen einen „Standardaktion“ Haken für Hash-Schlüssel, die nicht zugeordnet haben, die für die automatische vivification auch verwendet werden können.

Zum Beispiel in Ruby:


>> h = Hash.new {|h,k| h[k] = {}}
=> {}
>> h["hello"]["world"] = 20
=> 20
>> h["hello"]["world"]
=> 20

Andere Tipps

Sie irren sich. Um einen Wert in ein Objekt der Schlüssel in Javascript zuweisen, müssen Sie nicht, dass der Check durchzuführen. Der Wert wird zugewiesen, ob bereits ein Wert für diesen Schlüssel oder nicht.

Denken Sie darüber nach. Wie können Sie jemals Werte in ein Objekt oder Hash, wenn man dort zunächst einen Wert gehabt hat?

Javascript tut genau das Gleiche wie PHP hier: myObject [key] = „Wert“ wird den vorhandenen Wert überschreiben, falls vorhanden. Können Sie uns sagen, warum Sie anders denken?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top