Ich habe ein eindimensionales Array von Zeichenfolgen in JavaScript, das ich in eine durch Kommas getrennte Liste umwandeln möchte. Gibt es eine einfache Möglichkeit in JavaScript (oder jQuery) für Gartenvarianten, dies in eine durch Kommas getrennte Liste umzuwandeln? (Ich weiß, wie man das Array durchläuft und den String selbst durch Verkettung erstellt, wenn dies der einzige Weg ist.)
javascript
jquery
Herb Caudill
quelle
quelle
var arr = ["Zero", "One", "Two"]; console.log(arr.toString());
das gibtZero,One,Two
Read moreAntworten:
Die Array.prototype.join () -Methode:
quelle
Tatsächlich führt die
toString()
Implementierung standardmäßig einen Join mit Kommas durch:Ich weiß nicht, ob dies von der JS-Spezifikation vorgeschrieben wird, aber das ist was
die meistenSo ziemlich alle Browser scheinen dies zu tun.quelle
arr + ''
toString()
undjoin(",")
ist ungefähr gleichwertig ab April 2018Oder (effizienter):
Die toString-Methode eines Arrays gibt beim Aufruf genau das zurück, was Sie benötigen - eine durch Kommas getrennte Liste.
quelle
Hier ist eine Implementierung, die ein zweidimensionales Array oder ein Array von Spalten in eine ordnungsgemäß maskierte CSV-Zeichenfolge konvertiert. Die Funktionen prüfen nicht, ob gültige Zeichenfolgen- / Zahleneingaben oder Spaltenzahlen vorhanden sind (stellen Sie sicher, dass Ihr Array zunächst gültig ist). Die Zellen können Kommas und Anführungszeichen enthalten!
Hier ist ein Skript zum Dekodieren von CSV-Zeichenfolgen .
Hier ist mein Skript zum Codieren von CSV-Zeichenfolgen :
quelle
Ich denke, das sollte es tun:
Geige
Grundsätzlich wird nur geprüft, ob die Zeichenfolge ein Komma oder ein Anführungszeichen enthält. Wenn dies der Fall ist, werden alle Anführungszeichen verdoppelt und Anführungszeichen an den Enden gesetzt. Dann verbindet es jeden der Teile mit einem Komma.
quelle
Wenn Sie zwischen den letzten beiden Elementen "und" anstelle von "verwenden müssen, können Sie Folgendes tun:
quelle
Es gibt viele Methoden, um ein Array in eine durch Kommas getrennte Liste zu konvertieren
1. Verwenden von Array # Join
Von MDN
Der Code
Snippet
Code-Snippet anzeigen
2. Verwenden von Array # toString
Von MDN
Der Code
Snippet
Code-Snippet anzeigen
3. Fügen Sie [] + vor dem Array oder + [] nach einem Array hinzu
Das [] + oder + [] konvertiert es in eine Zeichenfolge
Beweis
wird true ausgeben
Code-Snippet anzeigen
Snippet
Code-Snippet anzeigen
Ebenfalls
Code-Snippet anzeigen
quelle
Verwenden Sie die integrierte
Array.toString
MethodeMDN auf Array.toString ()
quelle
Normalerweise brauche ich etwas, das den Wert auch überspringt, wenn dieser Wert
null
oderundefined
usw. ist.Hier ist die Lösung, die für mich funktioniert:
Die meisten Lösungen hier würden zurückkehren,
', apple'
wenn mein Array wie in meinem zweiten Beispiel aussehen würde. Deshalb bevorzuge ich diese Lösung.quelle
Ich mochte die Lösung unter https://jsfiddle.net/rwone/qJUh2/, weil sie Leerzeichen nach Kommas hinzufügt:
Oder, wie von @StackOverflaw in den Kommentaren vorgeschlagen:
quelle
arr.join(', ')
, der tatsächlich schneller (laut @ Sameer-Kommentaren) und auch sicherer ist (nicht mit Kommas innerhalb von Array-Werten herumwirbelt, wie dies bei RegExp für die resultierende Zeichenfolge der Fall wäre). ;)Papa Parse behandelt Kommas in Werten und anderen Randfällen.
( Baby Parse for Node ist veraltet - Sie können Papa Parse jetzt im Browser und im Node verwenden.)
Z.B. (Knoten)
1 ,, "a, b"
quelle
Nehmen Sie den Anfangscode:
Die erste Antwort auf die Verwendung der Join-Funktion ist ideal. Eine zu berücksichtigende Sache wäre die endgültige Verwendung der Zeichenfolge.
Für die Verwendung in einigen Endtextanzeigen:
Für die Verwendung in einer URL zur (mehr) REST-fähigen Weitergabe mehrerer Werte:
Natürlich hängt alles von der endgültigen Verwendung ab. Behalten Sie einfach die Datenquelle und die Verwendung im Auge und alles wird mit der Welt in Ordnung sein.
quelle
Möchten Sie es mit einem "und" beenden?
Für diese Situation habe ich ein npm-Modul erstellt.
Versuchen Sie es mit arrford :
Verwendungszweck
Installieren
Weiterlesen
https://github.com/dawsonbotsford/arrford
Versuch es selber
Tonic Link
quelle
Ab Chrome 72 ist es möglich, Intl.ListFormat zu verwenden :
Bitte beachten Sie, dass sich dieser Weg in einem sehr frühen Stadium befindet. Erwarten Sie daher ab dem Datum der Veröffentlichung dieser Antwort eine Inkompatibilität mit älteren Versionen von Chrome und anderen Browsern.
quelle
quelle
quelle
Diese Lösung entfernt auch Werte wie
" "
:quelle