J'ai la chaîne ci-dessous -
var a = "1,2,3,4";
quand je le fais -
var b = a.split(',');
Je reçois b
como ["1", "2", "3", "4"]
Je peux faire quelque chose pour que b
como [1, 2, 3, 4]
?
J'ai la chaîne ci-dessous -
var a = "1,2,3,4";
quand je le fais -
var b = a.split(',');
Je reçois b
como ["1", "2", "3", "4"]
Je peux faire quelque chose pour que b
como [1, 2, 3, 4]
?
Vous pouvez utiliser Array.map
pour convertir chaque élément en un nombre.
var a = "1,2,3,4";
var b = a.split(',').map(function(item) {
return parseInt(item, 10);
});
Vérifiez le Docs
Ou plus élégamment, comme l'a fait remarquer l'utilisateur thg435.
var b = a.split(',').map(Number);
Donde Number()
ferait le reste:check aquí
Note : Pour les anciens navigateurs qui ne prennent pas en charge map
vous pouvez ajouter une implémentation vous-même, par exemple :
Array.prototype.map = Array.prototype.map || function(_x) {
for(var o=[], i=0; i<this.length; i++) {
o[i] = _x(this[i]);
}
return o;
};
Mes deux centimes pour les golfeurs :
b="1,2,3,4".split`,`.map(x=>+x)
backquote est une chaîne de caractères littérale, nous pouvons donc omettre les parenthèses (à cause de la nature de la fonction split) mais c'est équivalent à split(',')
. La chaîne de caractères est maintenant un tableau, il nous suffit de faire correspondre chaque valeur avec une fonction retournant l'entier de la chaîne de caractères, donc x=>+x
(qui est encore plus court que le Number
(5 caractères au lieu de 6)) est équivalent à :
function(x){return parseInt(x,10)}// version from techfoobar
(x)=>{return parseInt(x)} // lambda are shorter and parseInt default is 10
(x)=>{return +x} // diff. with parseInt in SO but + is better in this case
x=>+x // no multiple args, just 1 function call
J'espère que c'est un peu plus clair.
Array.from() pour plus de détails, voir MDN
let a = "1,2,3,4";
let b = Array.from(a.split(','),Number);
ou
let c = ["1", "2", "3", "4"].map(Number);
b
y c
est un tableau de nombres.
démonstration :
let a = "1,2,3,4";
let b = Array.from(a.split(','),Number);
let c = ["1", "2", "3", "4"].map(Number);
console.log(`b: ${b}, c: ${c}`);
Mettez-le en correspondance avec des entiers :
a.split(',').map(function(i){
return parseInt(i, 10);
})
map
examine chaque élément du tableau, le passe à 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 telles que jQuery o soulignement inclure une version multi-navigateurs.
Ou, si vous préférez les boucles :
var res = a.split(",");
for (var i=0; i<res.length; i++)
{
res[i] = parseInt(res[i], 10);
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.