我遇到了 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编写代码以来已经很长时间了,现在我开始觉得有点愚蠢,不明白错误是什么...... :(
答案 0 :(得分:3)
.split()
函数返回一个数组;没有必要建立一个。您的代码构建了一个新数组,该数组将包含一个条目,即.split()
返回的数组。
构建数组的一种更简单的方法是使用数组文字:
return [1, 2, 3];
无论你传入alert()
函数的是什么,都会被强制转换为字符串,因此它不是分析行为的最佳方法。
答案 1 :(得分:1)
你将一个数组放在另一个数组中,因为alert( test[0] );
会通过拆分你的字符串来返回你创建的第一个数组。
使用
return string.split(delimiter);
而不是
return new Array( string.split(delimiter) );