将字符串数组转换为整数数组

9

我有一个字符串数组,如['2', '10', '11'],想知道将其转换为整数数组的最有效方法。我应该循环遍历所有元素并将其转换为整数,还是有一种函数可以完成这个任务?

4个回答

18

使用 map()parseInt()

var res = ['2', '10', '11'].map(function(v) {
  return parseInt(v, 10);
});

document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')

更简化的 ES6 箭头函数

var res = ['2', '10', '11'].map(v => parseInt(v, 10));

document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')

或者使用Number

var res = ['2', '10', '11'].map(Number);

document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')


或者添加+符号会更简单,可以解析字符串

var res = ['2', '10', '11'].map(v => +v );

document.write('<pre>' + JSON.stringify(res, null, 3) + '<pre>')


提醒一下: 根据@Reddy的评论 - map() 在旧版浏览器中不起作用,您需要实现它 (修复Internet Explorer中的JavaScript数组函数(indexOf、forEach等)),或者简单地使用for循环并更新数组。

此外,还有其他方法在文档中介绍,请参见Polyfill,感谢@RayonDabre指出。


谢谢你的建议!唯一不好的是它需要另一个数组的内存,但幸运的是我的数组非常小。 - MarksCode
由于兼容性问题,请注意在IE8及以下版本中不支持Array.map()方法。 - Rajshekar Reddy
1
这里有一个 Polyfill。 - Rayon

3
您可以简单地使用Number对象。
ḷet res = ['2', '10', '11'].map(Number);

2
您可以使用

标签。

var yourArray= yourArray.map(Number);

使用jQuery,您可以按以下方式使用map方法。
$.map(yourArray, function(value,index) { 
     return parseInt(value); 
 });

0

从字符串中解析整数的最简单方法是在前面添加+符号:

var res = ['1', '2', '3'].map(function(v){return +v})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接