JS排序的问题

   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成立讲道理应该是从小到大排序啊,为什么结果是从大到小


蓝山帝景
浏览 329回答 1
1回答

长风秋雁

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

相关分类

JavaScript