So teilen Sie eine durch Kommas getrennte Zeichenfolge in ein Array in cfscript

8

Gibt es eine einfache Möglichkeit, eine durch Trennzeichen getrennte Zeichenfolge in ein Array unter Verwendung von cfscript zu teilen?

Ähnliches wie das folgende JavaScript:

%Vor%     
Kenneth J 06.09.2011, 17:00
quelle

2 Antworten

27
%Vor%

Ссылка

    
Henry 06.09.2011, 17:08
quelle
3

Ihre zwei Hauptoptionen sind listToArray (myList) und die Java-Methode myList.split (), wie in früheren Antworten und Kommentaren erwähnt. Es gibt jedoch einige Dinge zu beachten.

  • Standardmäßig ignorieren ColdFusion-Listenfunktionen leere Listenelemente.
  • Seit coldFusion Version 8 verwendet listToArray ein optionales drittes Argument, includeEmptyFields, das ein Boolean ist, das dieses Verhalten steuert, standardmäßig false.

Zum Beispiel:

%Vor%

Re java split:

Wie andere Java-Funktionen, die durch die ColdFusion-Ebene auftauchen, ist dies undokumentiert und wird nicht unterstützt

In Adobe ColdFusion 8, 9 und 10, aber nicht in Railo, ist dies ein Syntaxfehler:

%Vor%

Aber das funktioniert:

%Vor%

Soweit ich sehen kann, behandelt Adobe ColdFusion das Ergebnis von .split () wie ein ColdFusion-Array:

  • CFDumps zeigen es als ein Array
  • Es ist 1-basiert
  • Sie können arrayLen darauf verwenden
  • Sie können ihre Elemente in ColdFusion
  • ändern
  • Es kann andere Verhaltensweisen geben, die ich nicht überprüft habe, die nicht wie ein CF-Array sind, aber wie oben wird es nicht unterstützt

In Railo:

  • Debug-Dumps zeigen es als natives Array (java.lang.String [])
  • Die anderen Aussagen über sein Array-ähnliches Verhalten sind immer noch wahr

Das steht im Gegensatz zu echten Java-Arrays, die mit createObject ("java", "java.util.ArrayList") erstellt wurden.
HINWEIS: Das ist nur teilweise korrekt; siehe unten.

  • In Adobe ColdFusion können beispielsweise Elemente einer Java-ArrayList nicht direkt mit CFML
  • geändert werden
  • Im Allgemeinen behandelt Railo Java-Arrays eher wie ColdFusion-Dateien als ACF

Bearbeiten: Danke Leigh, ich stehe korrigiert, ich sollte bei dem bleiben, was ich weiß, welches CF-Weg mehr ist als Java.

Ich habe auf den Kommentar reagiert, der besagt, dass das Ergebnis von .split () "kein ColdFusion-Array ist, sondern ein natives Java-Array. Sie können es nicht über CF ändern", was nicht der Fall ist meine Erfahrung. Mein Versuch, dies genauer zu machen, war schlecht informiert und unnötig.

    
enigment 06.04.2013 14:45
quelle

Tags und Links