2011-11-22 154 views
18

我有一个字符串,在页面上,我想要一个int数组。javascript分割字符串到int数组

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

我写这篇文章:

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

然而,ArrayData成为字符串数组。我如何获得一系列整数?请注意,HTML中的某些元素可以等于0.

谢谢。

+0

的可能重复(http://stackoverflow.com/问题/ 4437916/to-convert-all-elements-in-an-array-to-integer-in-javascript) –

回答

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

可以使用$.map通过调用每个元素的parseInt阵列中

+5

它应该是'$ .map($('#TheData').text()。split(' ,'),function(){...});'。 –

+1

注意:这不是['jQuery.map'](http://api.jquery.com/jquery.map/)的示例,而是['Array#map'](https:// developer。 mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map)。 –

+0

这返回了一个NaN数组,需要添加函数(n)... parseInt(n,10)。 – frenchie

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

添加Array.prototype.map()旧版浏览器的代码from MDN到字符串数组转换为整数。


您可以以同样的方式使用jQuery的$.map(),虽然它不会与$.prototype.map()工作。

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

如果只有字符串转换为数组中的整数,这将只返回整数。 – kennebec

+1

@kennebec:恩,是的。恐怕我不明白你的观点。 – RightSaidFred

+0

如果最终用户将文本更改为包含小数,则最终可能会使用浮点数而不是整数。在某些情况下,这可能没有问题,但对于那些不期待它们的人可能会导致意想不到的结果。 – Slobaum