2011-11-22 17 views
18

Tengo una cadena que está en la página y de la que quiero una matriz de int.javascript dividir cadena en una matriz de int

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

estoy escribiendo esto:

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

Sin embargo, ArrayData se convierte en una matriz de cadenas. ¿Cómo puedo obtener una matriz de enteros? Tenga en cuenta que algunos de los elementos en el HTML pueden ser 0.

Gracias.

+0

posible duplicado de (http://stackoverflow.com/ preguntas/4437916/to-convert-all-elements-in-an-array-to-integer-in-javascript) –

Respuesta

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

Puede utilizar $.map para transformar la matriz de cadenas a enteros llamando parseInt en cada uno de los elementos de la matriz

+5

Debe ser '$ .map ($ ('# TheData'). text(). split (' , '), function() {...}); '. –

+1

Nota: Este no es un ejemplo de ['jQuery.map'] (http://api.jquery.com/jquery.map/), sino de [' Array # map'] (https: // developer. mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map). –

+0

Esto devolvió una matriz de NaN, necesaria para agregar la función (n) ... parseInt (n, 10). – frenchie

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

Añadir Array.prototype.map() a navegadores antiguos con el código from MDN.


Puede utilizar $.map() de jQuery de la misma manera, a pesar de que no va a funcionar con $.prototype.map().

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

Esto solo devolverá enteros si solo hay cadenas que se convierten en enteros en la matriz. – kennebec

+1

@kennebec: Bueno, sí. Me temo que no entiendo el punto que estás haciendo. – RightSaidFred

+0

Si el usuario final altera el texto para incluir decimales, puede terminar con flotantes en lugar de con enteros. Eso puede estar bien en algunos escenarios, pero podría causar resultados inesperados para aquellos que no los esperaban. – Slobaum

Cuestiones relacionadas