老师来看看这样O不OK
来源:2-23 编程练习
DANLAI
2020-07-17 17:23:12
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数组</title>
</head>
<body>
<script>
function arrReverse(arr){
var newArr=[];
for(var i=0;i<arr.length;i++){
//补充代码
arr.sort(function(a,b){return b-a});
document.write(arr[i]+',')
}
//补充代码
return newArr
}
document.write(arrReverse([1,2,3,4,5,6,7,8]));
</script>
</body>
</html>
我这种方法是不是很笨,如果在实战中用到感觉会很麻烦,因为我真的理解不了newArr[i]=arr[arr.length-1-i]这个方法,我只能自己找方法。。。。
2回答
好帮手慕星星
2020-07-17
同学你好,reverse()本身是反转的意思,可以实现效果。但是这里是通过封装函数来模拟reverse()方法的作用,所以还是不推荐使用reverse()方法。
祝学习愉快!
好帮手慕星星
2020-07-17
同学你好,虽然输出结果对于原数组[1, 2, 3, 4, 5, 6, 7, 8]来说是反向输出,但是数组内容一旦不按照顺序,就不是反向输出了,为排序。因为sort()方法的作用为排序,并不是用来反向的。参考修改
newArr[i]=arr[arr.length-1-i]语句的意思是原数组中的每一项倒着放进新数组中。例如arr的数组长度为3
1、那么arr数组最后一项为arr[2],索引从0开始,所以最后一项的索引为2,也就是3-1 。新数组newArr第一项为newArr[0],所以newArr[0]=arr[3-1-0]
2、arr数组倒数第二项为arr[1],也就是arr[3-1-1],新数组第二项为newArr[1],所以newArr[1]=arr[3-1-1]
后面以此类推, 得出newArr[i]=arr[arr.length-1-i]的结论。
自己再测试理解下,祝学习愉快!
相似问题