日期:2014-05-16  浏览次数:20376 次

javacript输出的一个小问题
我写了这么一个小函数:数组成员反转
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就可以了。