Comment convertir séparées par des virgules, une chaîne en un tableau numérique en javascript
J'ai un tableau à une dimension de l'entier en JavaScript et j'aimerais ajouter des données à partir séparés par des virgules de la chaîne, Est-il un moyen simple de faire cela?
e.g : var strVale = "130,235,342,124 ";
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser split() pour obtenir de tableau de chaîne de chaîne séparée par des virgules. Si vous itérez et effectuer l'opération mathématique sur l'élément de tableau de chaîne alors que l'élément sera traité comme numéro par temps de cast, mais vous avez toujours la chaîne de tableau. Pour convertir séparées par des virgules string int matrice de voir le modifier.
Démonstration En Direct
Sortie
Modifier, séparés par des Virgules string en int Tableau Dans l'exemple ci-dessus la chaîne sont projetées les chiffres de l'expression, mais pour obtenir l'int tableau de tableau de chaîne, vous devez le convertir en nombre.
var strVale = "130,,,0,,235,342,124";
.Modifier >>
Grâce à @NickN & @connexo remarques!
Un filtre est applicable si vous par exemple. voulez exclure des valeurs non numériques:
"123,87,hello,65".split(",").map(Number).filter(x => !isNaN(x))
donne[123, 87, 65]
.",,1,".split(",").map(Number).filter(x => !isNaN(x))
qu'il sera de retour[0, 0, 1, 0]
. Cela est dû àNumber("")
retour0
. Notez également queisNaN("")
retournefalse
.",,1,".split(",").map(Number).filter(x => x!="" && !isNaN(x))
0
valeurs. Essayez",,0,".split(",").map(Number).filter(x => x!="" && !isNaN(x))
stackoverflow.com/a/56426645/3744304 résout ce problème.Vous pouvez utiliser le Chaîne
split
méthode pour obtenir le nombre de célibataires comme un tableau de chaînes de caractères. Puis convertir des nombres avec unaire opérateur plus, laNumber
fonction ouparseInt
, et de les ajouter à votre tableau:Ou, en une seule étape, à l'aide de Tableau
map
pour les convertir et les l'application de à un seulpush
:map()
vous devez simplement utiliser un couple de méthodes pour ce faire, c'est ça!
la sortie sera le tableau de nombres.
La méthode split() est utilisée pour découper une chaîne en un tableau de sous-chaînes, et renvoie la nouvelle tableau.
VOIR ICI
Vous pouvez les diviser et de les convertir comme
Maintenant, vous pouvez utiliser intValArray en vous logique.
Solution:
C'est un moyen facile et rapide de la solution lorsque la valeur de la chaîne est correcte avec la virgule(,).
Mais si la chaîne est avec le dernier caractère à la virgule, Qui en fait un vide d'élément de tableau, et c'est également supprimé des espaces supplémentaires autour d'elle.
Alors je vous suggérons d'utiliser
push()
Toutes les réponses données jusqu'à présent créer, éventuellement, un résultat inattendu pour une chaîne comme
",1,0,-1,, ,,2"
:Pour résoudre ce problème, je suis venu avec le correctif suivant:
Veuillez noter qu'en raison de
et
nous ne pouvons pas combiner les deux filtre étapes.