2011-11-22 49 views
18

Tôi có một chuỗi nằm trên trang và từ đó tôi muốn một mảng int.chuỗi phân tách javascript thành mảng int

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

Tôi đang viết này:

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

Tuy nhiên, ArrayData trở thành một mảng các chuỗi. Làm thế nào tôi có thể nhận được một mảng ints? Lưu ý rằng một số phần tử trong HTML có thể bằng 0.

Cảm ơn.

+0

thể trùng lặp của (http://stackoverflow.com/ question/4437916/to-convert-all-elements-in-an-array-to-integer-in-javascript) –

Trả lời

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

Bạn có thể sử dụng $.map để chuyển đổi hàng loạt các chuỗi để ints bằng cách gọi parseInt trên mỗi nguyên tố trong mảng

+5

Nó phải là '$ .map ($ ('# TheData'). text(). split (' , '), hàm() {...}); '. –

+1

Lưu ý: Đây không phải là ví dụ về ['jQuery.map'] (http://api.jquery.com/jquery.map/), nhưng của [' Array # map'] (https: // developer. mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map). –

+0

Điều này trả về một mảng NaN, cần thiết để thêm hàm (n) ... parseInt (n, 10). – frenchie

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

Thêm Array.prototype.map() để trình duyệt cũ với mã from MDN.


Bạn có thể sử dụng $.map() jQuery theo cách tương tự, mặc dù nó sẽ không làm việc với $.prototype.map().

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

Điều này sẽ chỉ trả về số nguyên nếu chỉ có chuỗi chuyển đổi thành số nguyên trong mảng. – kennebec

+1

@kennebec: Vâng, vâng. Tôi sợ tôi không hiểu điểm bạn đang làm. – RightSaidFred

+0

Nếu người dùng cuối thay đổi văn bản để bao gồm số thập phân, bạn có thể kết thúc bằng phao thay vì int. Điều đó có thể được chấp nhận trong một số trường hợp, nhưng nó có thể gây ra kết quả không mong muốn cho những người không mong đợi chúng. – Slobaum

Các vấn đề liên quan