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]变成数组内的最小值,所以最后数组变成由大到小,具体你可以设个断点,看一下
添加回答
举报
0/150
提交
取消