我写了这么一个小函数:数组成员反转
function myreverse(arr) {
alert(arr.length);
for (var i = 0; i < arr.length/ 2; i++) {
var r = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = r;
}
}
var arr1 = new Array();
arr1[0] = "ds";
arr1[1] = "56";
arr1[2] = "2";
arr1[3] = "aaaa";
//alert(myreverse(arr1));//用这句话调用函数输出的话,,值为空
alert(arr1);
myreverse(arr1);
alert(arr1);//这种方法一步一步来可以输出
//而下面这个数组分割,函数中有return的就可以直接调用函数输出;
function myjoin(arr) {
var s = arr[0];
for (var i = 1; i < arr.length; i++) {
s = s+"|" + arr[i];
}
return s;
}
var arr1 = new Array();
arr1[0] = "ds";
arr1[1] = "56";
arr1[2] = "2";
arr1[3] = "aaaa";
alert(myjoin(arr1));
请问这是为什么;哪位知道请指点一二
------解决方案--------------------
array有原生的反转函数
- JScript code
var a = [1,54,'a',6,'cc']; alert( a.reverse() )
------解决方案--------------------
问题在于你的myreverse方法没有return语句,尽管你的myreverse方法把数组中的内容反转了,但是没有返回输出,所以在你调用alert(myreverse(arr1))时输出为空。在你的myreverse方法中田间一个return就可以了。