我有以下字符串 -
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.map将每个元素转换为数字。
var a = "1,2,3,4";
var b = a.split(',').map(function(item) {
    return parseInt(item, 10);
});
检查文档
或者更优雅地如用户所指出的那样: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;
};
我给高尔夫球手的 2 美分:
b="1,2,3,4".split`,`.map(x=>+x)
反引号是字符串字面量所以我们可以省略括号(因为 split 函数的性质)但它等价于split(','). 字符串现在是一个数组,我们只需要使用返回字符串整数的函数来映射每个值,因此x=>+x(甚至比Number函数(5 个字符而不是 6 个)更短)等效于:
function(x){return parseInt(x,10)}// version from techfoobar
(x)=>{return parseInt(x)}         // lambda are shorter and parseInt default is 10
(x)=>{return +x}                  // diff. with parseInt in SO but + is better in this case
x=>+x                             // no multiple args, just 1 function call
我希望它更清楚一点。
这个很简单,比如:
["1", "2", "3", "4"].map(i=>Number(i))
你可以运行演示。
let result = ["1", "2", "3", "4"].map(i=>Number(i));
console.log(result);
+string将尝试将字符串更改为数字。然后使用Array.map函数来改变每个元素。
"1,2,3,4".split(',').map(function(el){ return +el;});