Jak przekonwertować ciąg na tablicę JavaScript?
Spójrz na kod:
var string = "0,1";
var array = [string];
alert(array[0]);
W takim przypadku alert
wyskakuje okienko 0,1
. Gdyby to była tablica, wyskakuje a 0
, a kiedy alert(array[1]);
jest wywoływana, powinna wyskakować 1
.
Czy jest szansa na konwersję takiego ciągu na tablicę JavaScript?
javascript
arrays
string
Scott
źródło
źródło
string[0] === '0'
W twoim pytaniu), w większości przypadków możesz traktować ciąg jako tablicę znaków i używać na nim metod tablicowych.Odpowiedzi:
W przypadku takich prostych elementów tablicy można użyć
JSON.parse
.To daje tablicę liczb.
Jeśli użyjesz
.split()
, skończysz z tablicą ciągów.Pamiętaj, że
JSON.parse
ograniczy to do obsługiwanych typów danych. Jeśli potrzebujesz wartości takich jakundefined
lub funkcji, musisz użyćeval()
lub parsera JavaScript.Jeśli chcesz użyć
.split()
, ale chcesz także tablicę liczb, możesz jej użyćArray.prototype.map
, chociaż będziesz musiał ją przełożyć na IE8 i obniżyć lub po prostu napisać tradycyjną pętlę.źródło
JSON.parse();
nie jest dostępny w IE6, IE7. Myślę, że w tym przypadkuString.split(',');
jest łatwiej.var array = (new Function("return [" + string + "];"))()
. Używanie.split()
jest w porządku, jeśli liczby nie są potrzebne, w przeciwnym razie trzeba zmapować wynik.eval
). Jeśli tablica zawiera wartości z danych wejściowych po stronie klienta, nie będzie to bezpieczne.Podziel go na
,
postać;źródło
Można to łatwo osiągnąć w ES6 ;
Możesz przekonwertować ciągi znaków na tablice za pomocą Array.from ('string') ;
będzie console.log
Właśnie tego szukasz.
źródło
JSON.parse
naArray.from
podczas używaniaES6
. DziękujęRay Kim
Array.from("0, 1, 233")
wrócę["0", ",", " ", "1", ",", " ", "2", "3", "3"]
, co jeśli chcę[0, 1, 233]
?Set
ciągiem znaków.Jeśli ciąg jest już w formacie listy, możesz użyć pliku JSON.parse:
źródło
Konwertuj wszystkie typy ciągów
JSFiddle https://jsfiddle.net/7ne9L4Lj/1/
Wynik w konsoli
Niektóre praktyki nie obsługują ciągów obiektów
źródło
W przypadku takich prostych elementów tablicy można użyć JSON.parse.
To daje tablicę liczb.
teraz wartość zmiennej jest podobna do array.length = 1
Wartość wyjściowa
źródło
Możesz użyć
split
Odniesienie: http://www.w3schools.com/jsref/jsref_split.asp
"0,1".split(',')
źródło
Inną opcją przy użyciu ES6 jest użycie składni Spread .
var convertedArray = [..."01234"];
źródło
użyj wbudowanej funkcji mapy z funkcją anonimową, na przykład:
[edytuj] oto, jak byś tego użył
źródło
"123, 'a string with a , comma', 456"
. Możesz użyć bardziej złożonego wyrażenia regularnego, aby poprawnie obsługiwać takie przypadki (na przykład coś takiego jak tutaj sugerowane ).Więcej przykładów „Wypróbuj sam” poniżej.
Definicja i użycie Metoda split () służy do dzielenia łańcucha na tablicę podciągów i zwraca nową tablicę.
Wskazówka: Jeśli jako separator zostanie użyty pusty ciąg („”), ciąg zostanie podzielony między każdy znak.
Uwaga: Metoda split () nie zmienia oryginalnego ciągu.
źródło
Możesz użyć javascript Spread Syntax, aby przekonwertować ciąg znaków na tablicę. W poniższym rozwiązaniu usuwam przecinek, a następnie przekształcam ciąg znaków na tablicę.
źródło
Jak przekonwertować ciąg oddzielony przecinkami na tablicę w JavaScript?
Więcej przykładów konwersji łańcucha na tablicę w javascript przy użyciu poniższych sposobów:
Split () z argumentem ograniczenia
sprawdź ten link ==> https://www.tutsmake.com/javascript-convert-string-to-array-javascript/
źródło
Usuwam znaki „[”, „]” i dzielę za pomocą „,”
źródło
Split („,”) może konwertować ciągi z przecinkami na tablicę ciągów, oto mój fragment kodu.
źródło
// => deklarowanie wyrażenia regularnego
[a-zA-Z0-9] => dopasuj wszystkie az, AZ, 0-9
(): => zgrupuj wszystkie dopasowane elementy
$ 1 => ciąg zastępujący odnosi się do pierwszej grupy dopasowania w wyrażeniu regularnym.
g => globalna flaga
źródło
Przykład użycia
Array.filter
:źródło
Dlaczego nie zastąpisz
,
przecinka isplit('')
takiego ciągu, co spowoduje['0', '1']
, że możesz ponadto zawinąć wynik w,parseInt()
aby przekształcić element w liczbę całkowitą.źródło