Javascript 拆分一个值的字符串数组失败

Javascript 拆分一个值的字符串数组失败,javascript,Javascript,我有这个: var ID= "12,32,23,78"; var i = ID.split(','); 如果我这样做,那么它工作得很好,但是当它只有一个值,比如12,那么它会给我0。我怎样才能解决这个问题?如果我只需要检查一个值,怎么做?与您发布的内容完全相同,只是使用JavaScripts.indexOf()字符串方法检查是否存在分隔符。与您发布的内容完全相同,只是使用JavaScripts.indexOf()字符串方法检查是否存在分隔符 var i; if (ID.indexOf(","

我有这个:

var ID= "12,32,23,78";

var i = ID.split(',');

如果我这样做,那么它工作得很好,但是当它只有一个值,比如12,那么它会给我0。我怎样才能解决这个问题?如果我只需要检查一个值,怎么做?

与您发布的内容完全相同,只是使用JavaScripts.indexOf()字符串方法检查是否存在分隔符。

与您发布的内容完全相同,只是使用JavaScripts.indexOf()字符串方法检查是否存在分隔符

var i;
if (ID.indexOf(",") != -1)
    i = ID.split(',');
else
    i = ID;
String.prototype.mySplit = function(sep) {
    return (this.indexOf(sep) != -1) ? this.split(sep) : [this];
};
例如:

//var ID= '12,32,23,78';
var ID= '12';

//Update
if (typeof(ID)=='number') ID += '';

var i = ID.mySplit(',');

alert(i[0]);
例如:

//var ID= '12,32,23,78';
var ID= '12';

//Update
if (typeof(ID)=='number') ID += '';

var i = ID.mySplit(',');

alert(i[0]);
如果变量“ID”是数字12,那么它当然不起作用,
.split()
方法是字符串的方法,而不是数字的方法。试试这个:

var ID = /* whatever */;

var i = (ID + '').split(',');
如果变量“ID”是数字12,那么它当然不起作用,
.split()
方法是字符串的方法,而不是数字的方法。试试这个:

var ID = /* whatever */;

var i = (ID + '').split(',');
不管你怎么做

    var ID= "12";

    var i = ID.split(',') || ID;
不管你怎么做

    var ID= "12";

    var i = ID.split(',') || ID;

假设ID始终包含一个逗号分隔的整数列表或一个不带逗号的单个整数,则应该可以这样做。除非ID是数字而不是字符串,否则调用
.search()
将失败。如果ID始终包含逗号分隔的整数列表或不带逗号的单个整数,则此操作应有效。除非ID是数字而不是字符串,否则对
.search()
的调用将失败。如果变量“ID”设置为数字而不是字符串,则此操作不起作用。如果变量“ID”设置为数字而不是字符串。+1。虽然OP在他的问题中不够清楚,但其他答案似乎误解了split()方法的内部工作原理-如果分隔符不在字符串中,split()仍将以完全相同的方式工作-返回一个只有一个元素的数组。是的,我意识到它非常模糊,当然,我不知道他说“他给我0”是什么意思,但这几乎可以肯定是问题所在。@Andy E:是的,尽管至少我发现split方法给他0是可疑的,直到Pointy澄清这是一种数据类型的东西+1+1. 虽然OP在他的问题中不够清楚,但其他答案似乎误解了split()方法的内部工作原理-如果分隔符不在字符串中,split()仍将以完全相同的方式工作-返回一个只有一个元素的数组。是的,我意识到它非常模糊,当然,我不知道他说“他给我0”是什么意思,但这几乎可以肯定是问题所在。@Andy E:是的,尽管至少我发现split方法给他0是可疑的,直到Pointy澄清这是一种数据类型的东西+1当您说只有12时,您是这样设置变量的:var ID=“12”还是。。。var ID=12-这将产生巨大的差异。是的,我没有提到ID可以是整数。当你说它只有12时,你是这样设置变量的:var ID=“12”还是。。。var ID=12-这将产生巨大的差异。是的,我没有提到ID可以是整数。这完全没有必要<代码>“12”。拆分(“,”)将返回
[“12”]
-您不需要编写单独的函数来获得此行为。您没有提到ID可以是整数,请参阅更新的代码。这完全没有必要<代码>“12”。拆分(“,”)将返回
[“12”]
-您不需要编写单独的函数来获得此行为。您没有提到ID可以是整数,请参阅更新的代码。