我将使用逗号分隔数字的String转换为整数数组,如
var string = "1,2,3,4";
var array = string.replace(/, +/g, ",").split(",").map(Number);
返回array = [1,2,3,4];
但是什么时候,
var string = "";
var array = string.replace(/, +/g, ",").split(",").map(Number);
返回array = [0];
我原以为它会返回array = [];
有人可以说为什么会这样。
答案 0 :(得分:8)
我建议这样做:
var array;
if (string.length === 0) {
array = new Array();
} else {
array = string.replace(/, +/g, ",").split(",").map(Number);
}
答案 1 :(得分:4)
string.replace(/, +/g, ",").split(",")
返回一个包含一个项目的数组 - 一个空字符串。在javascript中,转换为数字时为空字符串为0.见自己
Number(""); // returns (int)0
答案 2 :(得分:2)
要删除逗号后面的空格,可以在split函数本身内使用正则表达式。
array = string.split(/\s*,\s*/).map(Number);
我希望它会有所帮助