无法执行。。。不知道哪里有问题,麻烦老师给我解答下
来源: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]));
相似问题