2014-05-14 143 views
0

返回数组我有一个小问题,的JavaScript,可以通过下面的例子来说明:JavaScript的:不能正确地从功能

function inlineSplit (string, delimeter) 
{ 
    delimiter = typeof delimeter !== 'undefined' ? delimeter : ","; 
    return new Array(string.split(delimiter)); 
} 

我会假设,认为以下操作test变量将执行后是一个数组:

var test = inlineSplit("a,b,c"); 

令我惊讶的是,函数返回一个字符串。在以下测试中:

alert(test[0]); // results in "a,b,c" 
alert(test[1]); // results in "" 

什么可能是错误的?我用javascript编码已经很长时间了,现在我开始觉得有些不知道什么是错的......(

回答

3

.split()函数返回一个数组;没有必要构建一个。您的代码构建一个新的阵列,将有一个条目,由.split()返回的数组

建立一个数组更简单的方法是使用字面数组:

return [1, 2, 3]; 

无论你在传递给alert()函数将被强制为一个字符串,因此它不是分析行为的最佳方法。

+0

是啊,这就是答案:) –

1

您正在将数组放入另一个数组中,这是因为alert(test[0]);会将您通过分割字符串所创建的第一个数组返回给您。

使用

return string.split(delimiter); 

,而不是

return new Array(string.split(delimiter));