我有下面的字符串
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(',');
我得到b为["1","2","3","4"]
我能做点什么让b等于[1,2,3,4]吗?
当前回答
使用Array.from,试试这个:
Let b = ["1", "2", "3", "4"]; b = Array.from(b,Number); console.log (b);
其他回答
一个更简短的解决方案:映射并传递参数给Number:
Var a = "1,2,3,4"; Var b = a.s split(','); console.log (b); var c = b.map(Number); console.log (c);
你可以使用数组。映射将每个元素转换为一个数字。
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;
};
Array.from()详情请访问MDN
let a = "1,2,3,4";
let b = Array.from(a.split(','),Number);
or
let c = ["1", "2", "3", "4"].map(Number);
B和c是一个数字数组。
演示:
设a = "1,2,3,4"; let b = Array.from(a.s split(','),Number); let c = ["1", "2", "3", "4"].map(Number); Console.log (' b: ${b}, c: ${c} ');
将其映射为整数:
a.split(',').map(function(i){
return parseInt(i, 10);
})
Map查看每个数组项,将其传递给所提供的函数,并返回一个包含该函数返回值的数组。map在旧的浏览器中是不可用的,但是大多数库,如jQuery或underscore都有一个跨浏览器版本。
或者,如果你喜欢循环:
var res = a.split(",");
for (var i=0; i<res.length; i++)
{
res[i] = parseInt(res[i], 10);
}
使用Array.from,试试这个:
Let b = ["1", "2", "3", "4"]; b = Array.from(b,Number); console.log (b);