无法执行。。。不知道哪里有问题,麻烦老师给我解答下
来源:2-23 编程练习
007号学员
2019-05-30 10:07:50
function arrReverse(arr){
var newArr=[];
for(var i=0;i<arr.length;i++){
// 把循环到的数组内容,赋值给新数组 当前索引
newArr[i]=arr[arr.length-1-i];
// 返回数组
return newArr;
}
// 数组倒序
newArr.reverse();
}
document.write(arrReverse([1,2,3,4,5,6,7,8]));4回答
同学,你好。
你的分析不对,arr的长度是7,不是8,参考下图:

如果帮助到了你,欢迎采纳!
祝学习愉快!
Miss路
2019-05-30
同学,你好。
你第二次写的代码主要问题和第一次是一样的,都是对这两个地方不理解,下面截图中有做注释解释,你好好分析一下:

你可以参考这两种方式,两种方式不能合在一起用:

如果帮助到了你,欢迎采纳!
祝学习愉快!
Miss路
2019-05-30
同学,你好。
注意这两块的书写:

不能在循环中返回数组,要在循环外面返回新的数组,并且不需要用reverse方法调用,你写的这个方法就是要替代这个reverse方法的。
如果帮助到了你,欢迎采纳!
祝学习愉快!
007号学员
提问者
2019-05-30
function arrReverse(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
// 检测了一下 i 就是存储的值, 每一次循环把 i 赋值 给 newArr 数组 就OK 了
console.log(i)
newArr[i] = i;
}
// 上面经过,断点调试找到问题,return 在循环内部,第一次循环完毕就退出了。
// 返回 倒序后的数组
return newArr.reverse();
}
document.write(arrReverse([1, 2, 3, 4, 5, 6, 7, 8]));相似问题