我有下面的字符串

var a = "1,2,3,4";

当我…

var b = a.split(',');

我得到b为["1","2","3","4"]

我能做点什么让b等于[1,2,3,4]吗?


当前回答

你可以使用数组。映射将每个元素转换为一个数字。

var a = "1,2,3,4";

var b = a.split(',').map(function(item) {
    return parseInt(item, 10);
});

检查文档


或者像User: thg435所指出的那样更优雅

var b = a.split(',').map(Number);

Number()将完成其余的工作:检查这里


注意:对于不支持map的旧浏览器,你可以自己添加一个实现:

Array.prototype.map = Array.prototype.map || function(_x) {
    for(var o=[], i=0; i<this.length; i++) { 
        o[i] = _x(this[i]); 
    }
    return o;
};

其他回答

一个更简短的解决方案:映射并传递参数给Number:

Var a = "1,2,3,4"; Var b = a.s split(','); console.log (b); var c = b.map(Number); console.log (c);

一个衬套

Array.from(a.split(','), Number)

下划线js的方式-

var a = "1,2,3,4",
  b = a.split(',');

//remove falsy/empty values from array after split
b = _.compact(b);
//then Convert array of string values into Integer
b = _.map(b, Number);

console.log('Log String to Int conversion @b =', b);

这很简单。如:

["1", "2", "3", "4"].map(i=>Number(i))

您可以运行演示。 让结果=(“1”、“2”、“3”、“4”). map (i = > (i)); console.log(结果);

+string将尝试将字符串更改为数字。然后使用Array。映射函数来改变每个元素。

"1,2,3,4".split(',').map(function(el){ return +el;});