Mam poniżej ciągu -
var a = "1,2,3,4";
kiedy robię -
var b = a.split(',');
dostaję b
jak["1", "2", "3", "4"]
Mogę coś zrobić, aby uzyskać b
jak [1, 2, 3, 4]
?
javascript
arrays
Ashwin
źródło
źródło
Możesz użyć
Array.map
do przekonwertowania każdego elementu na liczbę.Sprawdź dokumenty
Lub bardziej elegancko, jak wskazał użytkownik: thg435
Gdzie
Number()
zrobi resztę: sprawdź tutajUwaga: w przypadku starszych przeglądarek, które nie obsługują
map
, możesz samodzielnie dodać implementację, taką jak:źródło
map(Number)
."1.1,2,3".split(",").map(Number)
to[1.1, 2, 3]
mając na uwadze, że"1.1,2,3".split(",").map(item => parseInt(item, 10))
jest[1, 2, 3]
Zamapuj na liczby całkowite:
map
sprawdza każdy element tablicy, przekazuje go do podanej funkcji i zwraca tablicę ze zwracanymi wartościami tej funkcji.map
nie jest dostępne w starych przeglądarkach, ale większość bibliotek, takich jak jQuery lub podkreślenie, zawiera wersję dla różnych przeglądarek.Lub, jeśli wolisz pętle:
źródło
+string
spróbuje zmienić ciąg na liczbę. Następnie użyjArray.map
funkcji, aby zmienić każdy element.źródło
Array.from () w celu uzyskania szczegółowych informacji przejdź do MDN
b
to tablica liczbźródło
Krótsze rozwiązanie: zamapuj i przekaż argumenty do
Number
:źródło
źródło
Jako wariant możesz użyć kombinacji
_.map
i_.ary
metod z biblioteki lodash . Cała transformacja będzie bardziej zwarta. Oto przykład z oficjalnej dokumentacji :źródło
Nie ma potrzeby używania lambda i / lub podawania
radix
parametruparseInt
, wystarczy użyćparseFloat
lubNumber
zamiast tego.Powody:
To działa:
Jest krótszy
Jest trochę szybszy i wykorzystuje pamięć podręczną, gdy
parseInt
-podejście - nie :Uwaga: W przeglądarce Firefox
parseInt
działa około 4 razy szybciej, ale nadal wolniej niż inne. W sumie:+e
<Number
<parseFloat
<parseInt
źródło
Sposób podkreślenia js -
źródło
Wersja Matta Zeunerta z funkcją Arraw (ES6)
źródło
Jedna wkładka
źródło
Ponieważ wszystkie odpowiedzi pozwalają
NaN
na uwzględnienie, pomyślałem, że dodam, że jeśli chcesz szybko rzucić tablicę mieszanych wartości na liczby, możesz to zrobić.źródło