J'ai sous la chaîne -
var a = "1,2,3,4";
quand je fais -
var b = a.split(',');
Je reçois b
comme["1", "2", "3", "4"]
puis-je faire quelque chose pour obtenir b
comme [1, 2, 3, 4]
?
javascript
arrays
Ashwin
la source
la source
Vous pouvez utiliser
Array.map
pour convertir chaque élément en un nombre.Consultez les documents
Ou plus élégamment comme indiqué par l'utilisateur: thg435
Où
Number()
ferait le reste: vérifiez iciRemarque: pour les navigateurs plus anciens qui ne prennent pas en charge
map
, vous pouvez ajouter vous-même une implémentation comme:la source
map(Number)
."1.1,2,3".split(",").map(Number)
est[1.1, 2, 3]
alors"1.1,2,3".split(",").map(item => parseInt(item, 10))
est[1, 2, 3]
Mappez-le à des entiers:
map
examine chaque élément du tableau, le transmet à la fonction fournie et renvoie un tableau avec les valeurs de retour de cette fonction.map
n'est pas disponible dans les anciens navigateurs, mais la plupart des bibliothèques comme jQuery ou underscore incluent une version multi-navigateurs.Ou, si vous préférez les boucles:
la source
+string
essaiera de changer la chaîne en un nombre. Ensuite, utilisez laArray.map
fonction pour changer chaque élément.la source
Array.from () pour plus de détails, accédez à MDN
b
est un tableau de nombresla source
Une solution plus courte: mappez et passez les arguments à
Number
:la source
la source
En variante, vous pouvez utiliser la combinaison
_.map
et les_.ary
méthodes de la bibliothèque lodash . Toute la transformation sera un plus compact. Voici un exemple de la documentation officielle :la source
Il n'est pas nécessaire d'utiliser des lambdas et / ou de donner un
radix
paramètre àparseInt
, utilisez simplementparseFloat
ou à laNumber
place.Les raisons:
Ça marche:
C'est plus court.
C'est un peu plus rapide et tire parti du cache, quand
parseInt
-approach - ne :Remarque: dans Firefox
parseInt
fonctionne environ 4 fois plus vite, mais toujours plus lent que les autres. Au total:+e
<Number
<parseFloat
<parseInt
la source
Le trait de soulignement js -
la source
Version de Matt Zeunert avec fonction use arraw (ES6)
la source
Bon mot
la source
Étant donné que toutes les réponses permettent
NaN
d'être incluses, j'ai pensé ajouter que si vous voulez convertir rapidement un tableau de valeurs mixtes en nombres, vous pouvez le faire.la source