为了账号安全,请及时绑定邮箱和手机立即绑定

JS排序的问题

JS排序的问题

蓝山帝景 2019-02-02 18:14:39
   function bubble(arr){            for( var i = 0; i < arr.length ; i++){                for( var j = 0; j < arr.length; j++){                    if(arr[i] > arr[j]){                        arr[i] = arr.splice(j,1,arr[i])[0];                    }                    }                }                return arr;            }//1. arr[i] = arr.splice(j,1,arr[i])[0]; 这里用了[0],是splice方法被删除掉的元素会形成一个数组吗?我也看到有人用过,为啥搜一下都没看到splice有这种方法//2. 如果1成立讲道理应该是从小到大排序啊,为什么结果是从大到小
查看完整描述

1 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

1.splice(index,num,array) 函数 返回的是包含被删除元素的数组,
arr.splice(j,1,arr[i]) 返回的是 包含arr[i]的一个新数组
2.为什么排序从打到小,因为splice操作本身就会改变原数组,每一个一层循环 i 都将 arr[i]变成数组内的最小值,所以最后数组变成由大到小,具体你可以设个断点,看一下

查看完整回答
反对 回复 2019-02-13
  • 1 回答
  • 0 关注
  • 328 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信