Mam jednowymiarową tablicę ciągów w JavaScript, którą chciałbym przekształcić w listę oddzieloną przecinkami. Czy istnieje prosty sposób w JavaScript dla odmian ogrodniczych (lub jQuery), aby zamienić to w listę oddzieloną przecinkami? (Wiem, jak iterować przez tablicę i sam budować ciąg przez konkatenację, jeśli to jedyny sposób.)
javascript
jquery
Herb Caudill
źródło
źródło
var arr = ["Zero", "One", "Two"]; console.log(arr.toString());
zwraca wartośćZero,One,Two
Czytaj więcejOdpowiedzi:
Metoda Array.prototype.join () :
źródło
W rzeczywistości
toString()
implementacja domyślnie łączy się przecinkami:Nie wiem, czy jest to wymagane przez specyfikację JS, ale to jest to
większośćprawie wszystkie przeglądarki wydają się działać.źródło
arr + ''
toString()
ijoin(",")
jest w przybliżeniu równoważna na kwiecień 2018 r.Lub (bardziej efektywnie):
Wywołana metoda toString tablicy zwraca dokładnie to, czego potrzebujesz - listę oddzieloną przecinkami.
źródło
Oto implementacja, która konwertuje tablicę dwuwymiarową lub tablicę kolumn na poprawnie zmieniony ciąg CSV. Funkcje nie sprawdzają poprawności wprowadzonego ciągu / liczby lub liczby kolumn (upewnij się, że tablica jest poprawna na początek). Komórki mogą zawierać przecinki i cytaty!
Oto skrypt do dekodowania ciągów CSV .
Oto mój skrypt do kodowania ciągów CSV :
źródło
Myślę, że powinno to zrobić:
skrzypce
Zasadniczo wszystko, co robi, to sprawdzanie, czy ciąg zawiera przecinek lub cudzysłów. Jeśli tak, to podwaja wszystkie cytaty i umieszcza je na końcach. Następnie łączy każdą część przecinkiem.
źródło
Jeśli chcesz użyć „i” zamiast „,” pomiędzy dwoma ostatnimi elementami, możesz to zrobić:
źródło
Istnieje wiele metod konwersji tablicy na listę rozdzielaną przecinkami
1. Za pomocą tablicy # join
Z MDN
Kod
Skrawek
Pokaż fragment kodu
2. Używając tablicy # toString
Z MDN
Kod
Skrawek
Pokaż fragment kodu
3. Dodaj [] + przed tablicą lub + [] po tablicy
[] + Lub + [] będzie przekonwertować go na sznurku
Dowód
wyświetli true
Pokaż fragment kodu
Skrawek
Pokaż fragment kodu
Również
Pokaż fragment kodu
źródło
Użyj wbudowanej
Array.toString
metodyMDN na Array.toString ()
źródło
I zazwyczaj znaleźć samodzielnie wymagające coś również pomija wartość, jeżeli wartość ta jest
null
lubundefined
itpOto rozwiązanie, które działa dla mnie:
Większość rozwiązań tutaj powróciłoby,
', apple'
gdyby moja tablica wyglądała tak jak w moim drugim przykładzie. Dlatego wolę to rozwiązanie.źródło
Podobało mi się rozwiązanie na https://jsfiddle.net/rwone/qJUh2/, ponieważ dodaje spacje po przecinkach:
Lub, jak sugeruje @StackOverflaw w komentarzach:
źródło
arr.join(', ')
:, który jest faktycznie szybszy (zgodnie z komentarzami @Sameer), a także bezpieczniejszy (nie zadziera z przecinkami w wartościach tablicy, tak jak RegExp na wynikowym łańcuchu). ;)Papa Parse obsługuje przecinki w wartościach i innych przypadkach krawędzi.
( Baby Parse dla węzła została wycofana - możesz teraz korzystać z analizy składni w przeglądarce i w węźle).
Na przykład. (węzeł)
1 ,, „a, b”
źródło
Biorąc kod początkowy:
Wstępna odpowiedź na temat użycia funkcji łączenia jest idealna. Jedną rzeczą do rozważenia byłoby ostateczne użycie ciągu.
Aby użyć w niektórych przypadkach wyświetlania tekstowego:
Aby użyć w adresie URL do przekazania wielu wartości w (nieco) RESTful sposób:
Oczywiście wszystko zależy od ostatecznego zastosowania. Pamiętaj tylko o źródle danych i użytkowaniu, a wszystko będzie dobrze ze światem.
źródło
Czy chcesz zakończyć to znakiem „i”?
Dla tej sytuacji utworzyłem moduł npm.
Wypróbuj arrford :
Stosowanie
zainstalować
Czytaj więcej
https://github.com/dawsonbotsford/arrford
Spróbuj sam
Link toniczny
źródło
Od Chrome 72 możliwe jest użycie Intl.ListFormat :
Pamiętaj, że ten sposób jest na bardzo wczesnym etapie, więc od daty opublikowania tej odpowiedzi spodziewaj się niezgodności ze starszymi wersjami Chrome i innymi przeglądarkami.
źródło
źródło
źródło
To rozwiązanie usuwa również takie wartości, jak
" "
:źródło