42 votes

JavaScript divise la chaîne de caractères en tableau d'int

J'ai une chaîne de caractères qui se trouve sur la page et à partir de laquelle je veux un tableau d'int.

<div id="TheData">2,3,0,43,23,53</div>

Je suis en train d'écrire ça :

var ArrayData = ($('#TheData').html()).split(',');

Cependant, ArrayData devient un tableau de chaînes de caractères. Comment puis-je obtenir un tableau d'ints ? Notez que certains des éléments du HTML peuvent être égaux à 0 .

Gracias.

50voto

RightSaidFred Points 7276
var ArrayData = $('#TheData').html().split(',').map( Number );

Ajouter Array.prototype.map() aux anciens navigateurs avec le code de MDN .


Vous pouvez utiliser l'outil de jQuery $.map() de la même manière, bien que cela ne fonctionne pas avec $.prototype.map() .

var ArrayData = $.map( $('#TheData').html().split(','), Number );

40voto

Keith.Abramo Points 5155
var ArrayData = $.map($('#TheData').text().split(','), function(value){
    return parseInt(value, 10);
    // or return +value; which handles float values as well
});

Vous pouvez utiliser $.map pour transformer le tableau de chaînes de caractères en ints en appelant parseInt sur chacun des éléments du tableau

19voto

Daniel Santana Points 83

Solution purement Javascript :

const elementText = document.getElementById('divSourceID').innerText;
const numericList = elementText.split(',').map(Number);

Pour plus d'informations :

  1. getElementById : " La méthode Document getElementById() renvoie un objet Element représentant l'élément dont la propriété id correspond à la chaîne spécifiée. Puisque les ID des éléments doivent être uniques s'ils sont spécifiés, ils constituent un moyen utile d'accéder rapidement à un élément spécifique. (...)". Source : : développeur.mozilla.org .

  2. Array.prototype.map : "La méthode map() crée un nouveau tableau peuplé des résultats de l'appel d'une fonction fournie sur chaque élément du tableau appelant". Source : : développeur.mozilla.org .

  3. array.map(Nombre) : Cet appel signifie que le premier argument reçu sera automatiquement converti en nombre et donne les mêmes résultats que si vous déclarez explicitement la fonction flèche :

    const numericList = elementText.split(',').map(Number);

même résultat que :

const numericList = elementText.split(',').map(str => Number(str));

JIT : Remerciements particuliers à @Robbendebiene pour l'excellente revue de code, simplifiant le code précédent.

13voto

Tang Chanrith Points 1
var ArrayData = $('#TheData').text().split(',').map(Number);

Vous pouvez en savoir plus ici :

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

7voto

cpt.John Points 83

Voici une réponse simple

let x = "1,2,3,4";

let result = x.split(",").map((e) => parseInt(e));

console.log(result);

Prograide.com

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.

Powered by:

X