admin管理员组

文章数量:1136398

I have a string that's on the page and from which I want an array of int.

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

I'm writing this:

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

However, ArrayData becomes an array of strings. How can I get an array of ints? Note that some of the elements in the HTML can be equal to 0.

Thanks.

I have a string that's on the page and from which I want an array of int.

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

I'm writing this:

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

However, ArrayData becomes an array of strings. How can I get an array of ints? Note that some of the elements in the HTML can be equal to 0.

Thanks.

Share Improve this question edited Mar 20, 2021 at 6:46 Amir 1,3383 gold badges15 silver badges29 bronze badges asked Nov 22, 2011 at 19:44 frenchiefrenchie 51.9k117 gold badges319 silver badges525 bronze badges 1
  • possible duplicate of To convert all elements in an array to integer in javascript? – Felix Kling Commented Nov 22, 2011 at 19:49
Add a comment  | 

6 Answers 6

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

Add Array.prototype.map() to older browsers with the code from MDN.


You can use jQuery's $.map() in the same manner, though it won't work with $.prototype.map().

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

You can use $.map to transform the array of strings to ints by calling parseInt on each of the elements in the array

Pure Javascript solution:

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

For more information:

  1. getElementById: "The Document method getElementById() returns an Element object representing the element whose id property matches the specified string. Since element IDs are required to be unique if specified, they're a useful way to get access to a specific element quickly. (...)". Source: developer.mozilla.org.

  2. Array.prototype.map: "The map() method creates a new array populated with the results of calling a provided function on every element in the calling array". Source: developer.mozilla.org.

  3. array.map(Number): This call means the first received argument will be automatically converted into number and results in the same as if you explicitly declare the arrow function:

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

same result as:

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

JIT: Special thanks to @Robbendebiene for the excellent code review, simplifying the previous code.

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

You can find more here:

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

Here is a simple answer

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

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

console.log(result);
var ArrayData = $('#TheData').html().split(',').map( d => { return parseInt(d) });

Use map function after Split, in callback of map you can parse that Integer

本文标签: jqueryJavaScript split string to array of intStack Overflow