I have an array of strings like ['2', '10', '11']
and was wondering what's the most efficient way of converting it to an integer array. Should I just loop through all the elements and convert it to an integer or is there a function that does this?
Asked
Active
Viewed 2.0k times
9

MarksCode
- 8,074
- 15
- 64
- 133
4 Answers
18
Use map()
and parseInt()
var res = ['2', '10', '11'].map(function(v) {
return parseInt(v, 10);
});
document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')
More simplified ES6 arrow function
var res = ['2', '10', '11'].map(v => parseInt(v, 10));
document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')
Or using Number
var res = ['2', '10', '11'].map(Number);
document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')
Or adding
+
symbol will be much simpler idea which parse the string
var res = ['2', '10', '11'].map(v => +v );
document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')
FYI : As @Reddy comment -
map()
will not work in older browsers either you need to implement it ( Fixing JavaScript Array functions in Internet Explorer (indexOf, forEach, etc.) ) or simply use for loop and update the array.
Also there is some other method which is present in it's documentation please look at Polyfill , thanks to @RayonDabre for pointing out.

Community
- 1
- 1

Pranav C Balan
- 113,687
- 23
- 165
- 188
-
Thanks for the suggestion! The only bad thing about this is it takes another array's worth of memory, but luckily my array isn't very big at all. – MarksCode Mar 03 '16 at 08:27
-
For compatibility issues, please note that Array.map() method is not available in IE8 and below – Rajshekar Reddy Mar 03 '16 at 08:28
-
1[_Polyfill_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Polyfill) is there.. – Rayon Mar 03 '16 at 08:46
2
You can use
var yourArray= yourArray.map(Number);
Using jQuery, you can use the map method as below
$.map(yourArray, function(value,index) {
return parseInt(value);
});

Rajshekar Reddy
- 18,647
- 3
- 40
- 59
0
The simplest way to parse int from string is adding a + sign before:
var res = ['1', '2', '3'].map(function(v){return +v})

Max Peng
- 2,879
- 1
- 26
- 43