javaScript选择排序,字符串常用的方法、数组去重

选择排序,字符串常用的方法、数组去重
摘要由CSDN通过智能技术生成

           一、选择排序思想

    1.n个数进行排序,进行n-1次选择

     2.每次选择

             未排序数中找最小数下标,与前面的数交换位置

    <script>
//              0    1  2    3   4
     var arr = [89, 98, 78, 68, 76]
     var n=arr.length
// 外层循环
     for(var i=0;i<n-1;i++){
        // 找最小数下标

     var minIndex=i//假设最小数下标是第一个数
     for(var j=i+1;j<n;j++){

        if(arr[j]<arr[minIndex]){//arr[2]<arr[1]    arr[3]<arr[2]   arr[4]<arr[3] 
            minIndex=j           //minIndex:2        minIndex:3       minIndex:3
            
        }

     }
    //  console.log("最小数下标:",minIndex);
    //  交换位置
     var temp=arr[i]
     arr[i]=arr[minIndex]
     arr[minIndex]=temp 
     console.log("第"+(i+1)+"次",arr)


    }
    console.log(arr)
    </script>
    

二、数组去重

 [9,2,5,2,8,2,5]->[9,2,5,8]

方法一:

利用indexOf或includes实现

   1.定义一个空数组[]用于去重后的元素

   2 .遍历原数组

方法一:

   <script>
        var arr = [9, 2, 5, 2, 8, 2, 5]
        function testIndexOf() {
            var newArr = []
            for (var i = 0; i < arr.length; i++) {
                // 判断新数组中是否有原数组当前元素,如果没有,存储到新数组中
                // if(newArr.indexOf(9)==-1){
                //     newArr.push(arr[i])
                // }if(newArr.includes(arr[i])==false){
                //     newArr.push(arr[i])
                // }
                if (!newArr.includes(arr[i])) {
                    newArr.push(arr[i])
                }
            }

            console.log(newArr)
        }
      testIndexOf()
   </script>

方法二 :

<script>

function test2() {

            var arr = [9, 2, 5, 2, 8, 2, 5]
            var newArr = []
            arr.forEach(function (item) {
                if (newArr.indexOf(item) == -1) {
                    newArr.push(item)
                }
            })
            console.log(newArr)

        } 
        test2()
<script>

方法三:

利用双重for循环+splice实现

             外层循环遍历数组的所有元素

                内层循环依次判断后面元素是否与外层元素相同,如果相同,截取掉

 <script>    
    function test3(){
            var arr = [2, 2, 2,5, 2, 8, 2, 5]
            //         0   1 2  3  4 5

            //        [2, 2,2,5, 2, 8, 2, 5]
            for(var i=0;i<arr.length;i++){
                for(var j=i+1;j<arr.length;j++){
           
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值