Saya memiliki string di bawah ini -
var a = "1,2,3,4";
ketika saya melakukan -
var b = a.split(',');
Saya mendapatkan b
sebagai["1", "2", "3", "4"]
Aku bisa melakukan sesuatu untuk mendapatkan b
sebagai [1, 2, 3, 4]
?
javascript
arrays
Ashwin
sumber
sumber
Anda dapat menggunakan
Array.map
untuk mengubah setiap elemen menjadi angka.Periksa Dokumen
Atau lebih elegan seperti yang ditunjukkan oleh Pengguna: thg435
Di mana
Number()
akan melakukan sisanya: periksa di siniCatatan: Untuk browser lama yang tidak mendukung
map
, Anda dapat menambahkan sendiri implementasi seperti:sumber
map(Number)
."1.1,2,3".split(",").map(Number)
adalah[1.1, 2, 3]
sedangkan"1.1,2,3".split(",").map(item => parseInt(item, 10))
adalah[1, 2, 3]
Petakan untuk bilangan bulat:
map
melihat setiap item array, meneruskannya ke fungsi yang disediakan dan mengembalikan array dengan nilai pengembalian fungsi itu.map
tidak tersedia di browser lama, tetapi sebagian besar perpustakaan seperti jQuery atau garis bawah menyertakan versi lintas-browser.Atau, jika Anda lebih suka loop:
sumber
+string
akan mencoba mengubah string ke angka. Kemudian gunakanArray.map
fungsi untuk mengubah setiap elemen.sumber
Array.from () untuk detail pergi ke MDN
b
adalah array angkasumber
Solusi yang lebih singkat: memetakan dan meneruskan argumen ke
Number
:sumber
sumber
Sebagai varian, Anda dapat menggunakan kombinasi
_.map
dan_.ary
metode dari perpustakaan lodash . Transformasi menyeluruh akan menjadi lebih kompak. Berikut ini contoh dari dokumentasi resmi :sumber
Tidak perlu menggunakan lambdas dan / atau memberikan
radix
parameterparseInt
, cukup gunakanparseFloat
atauNumber
sebagai gantinya.Alasan:
Bekerja:
Lebih pendek.
Ini sedikit lebih cepat dan memanfaatkan cache, ketika
parseInt
-approach - tidak :Perhatikan: Di Firefox
parseInt
berfungsi sekitar 4 kali lebih cepat, tetapi masih lebih lambat dari yang lain. Total:+e
<Number
<parseFloat
<parseInt
sumber
Cara garis bawah -
sumber
Versi Matt Zeunert dengan fungsi penggunaan arraw (ES6)
sumber
Satu liner
sumber
Karena semua jawaban memungkinkan
NaN
untuk dimasukkan, saya pikir saya akan menambahkan bahwa jika Anda ingin dengan cepat melemparkan array nilai campuran ke angka yang dapat Anda lakukan.sumber