javascript 中以逗号分隔的数字到整数数组的字符串

String with Comma separated numbers to array of integer in javascript

我正在将以逗号分隔的数字字符串转换为整数数组,例如,

 var string = "1,2,3,4"; 
 var array = string.replace(/, +/g, ",").split(",").map(Number); 

它returns array = [1,2,3,4];

但是当 ,

 var string = ""; 
 var array = string.replace(/, +/g, ",").split(",").map(Number); 

它returns array = [0];

我期待它 return array = []; 谁能说说为什么会这样。

string.replace(/, +/g, ",").split(",") returns 一个包含一项的数组 - 一个空字符串。 javascript中,空字符串转为数字为0,自己看

Number(""); // returns (int)0

我会推荐这个:

var array;
if (string.length === 0) {
    array = new Array();
} else {
    array = string.replace(/, +/g, ",").split(",").map(Number);
}

要删除逗号后的空格,您可以在拆分函数本身内部使用正则表达式。

array = string.split(/\s*,\s*/).map(Number);

希望对你有所帮助