数组去重

谁都会走 提交于 2020-02-05 20:17:05
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<script>
    // 目的:去掉数组中的重复项
/* var arr1 = [1,2,3,4,5,4,2,3,4,8,6,7,5,9,7,5,3,6,7,8];
    //第一种方法
    // 1.创建一个空数组保存去重后的新数组
    var arr2 = [];
    // 2.循环遍历
    for ( var i = 0; i < arr1.length; i++ ) {
        // 取出原数组arr1中每一项,用indexof判断新数组中是否存在,如果index判断的值为-1,说明新数组中没有此项,添加到新数组中,若index不为-1,说明新数组中有此项,不做任何操作
        if ( arr2.indexOf(arr1[i]) === -1 ) {
            arr2.push(arr1[i])
        } 
    }
    console.log(arr2);  */
    // 第二种方法
    // var arr1 = [1,2,3,4,5,4,2,3,4,8,6,7,5,9,7,5,3,6,7,8];
    // // 1.创建一个空数组保存去重后的新数组    创建一个对象用来判断是否是重复项
    // var arr2 = [];
    // var obj = {};
    // // 2.循环遍历
    // for ( var i = 0; i < arr1.length; i++ ) {
    //     //对象中如果没有此项就在对象中添加此项,并在新数组中添加;如果对象中有此项说明此项重复,不做任何操作
    //     if ( !obj[arr1[i]] ) {
    //         obj[arr1[i]] = 1;
    //         arr2.push(arr1[i])
    //     }
    // }
    // console.log(arr2);

    // 第三种方法
    // 循环遍历
    // var arr1 = [1,2,3,4,5,4,2,3,4,8,6,7,5,9,7,5,3,6,7,8];
    // for ( var i = 0; i < arr1.length; i++ ) {
    //     // 如果index和lastindex的值相等,说明此项为数组中唯一项,否则删除此项
    //     if ( arr1.indexOf(arr1[i]) !== arr1.lastIndexOf(arr1[i]) ) {
    //         //删除重复项, 为能保证所有项都遍历到所有索引减1
    //         arr1.splice(i, 1);
    //         i--;
    //     }
    // }
    // console.log(arr1);

    // // 第四种方法
    // var arr1 = [1,2,3,4,5,4,2,3,4,8,6,7,5,9,7,5,3,6,7,8];
    // //创建一个新的数组
    // var arr2 = [];
    // //先将原数组排序
    // arr1.sort(function(a,b){return a-b});
    // //对arr1循环遍历  并与新数组arr2的最后一项比较 如果不同则添加到arr2中
    // for(var i = 0; i < arr1.length; i++){
    //     if(arr1[i] !== arr2[arr2.length - 1]){
    //         arr2.push(arr1[i])
    //     }
    // }
    // console.log(arr2);
    
    // //第五种方法
    // var arr = [1,2,3,4,5,4,2,3,4,8,6,7,5,9,7,5,3,6,7,8];
    //     var arr1 = []; //定义一个接收数组
    //     for(var i = 0; i < arr.length; i++){
    //         var flag = true; //假设成立现在没有重复的数组
    //         for(var j = 0; j < arr1.length; j++){ 
    //             if(arr[ i ] == arr1[ j ]){ //每次循环都让arr[i]和arr1的每项做对比
    //                 flag = false; //如果相等 条件改为false;
    //             }
    //         }
    //         if( flag ) { //判定条件 假如没有重复元素 就像arr1的最后一项添加新值,
    //             arr1.push(arr[ i ]);
    //         }
    //     }

    // console.log(arr1)

    // //数组去重 第六种方法
    // var arr = [1,2,3,4,5,4,2,3,4,8,6,7,5,9,7,5,3,6,7,8];

    //     //循环遍历arr
    //     for (var i = 0; i < arr.length; i++) {
    //         //定义一个变量储存arr[i]的值;
    //         var temp = arr[i];
    //         //arr[0]的值已经保存,让这个值依次与后面的元素做对比
    //         for (var j = i + 1; j < arr.length; j++) {
    //             if (temp == arr[j]) {
    //                 //如果存储的temp和后面相应的arr[j]的值相等就删除j索引的重复值
    //                 arr.splice(j, 1)
    //                 //注意因为删除了j位置索引 so后位索引全部前移,这时循环j的索引会跳过一位与之后的值做对比。 删除j后需要将j做减一操作;恢复检测索引
    //                 j--;
    //             }
    //         }
    //     }
    // console.log(arr); 

    // // 第七种方法
    // var arr = [1,2,3,4,5,4,2,3,4,8,6,7,5,9,7,5,3,6,7,8];
    //  //创建一个新的数组用来存放数据
    // var arr2 = [];
    // for (var i = 0; i < arr.length; i++) {
    //  // index可以找到每一项第一次出现的位置  如果索引i等于数值arr[i]第一次出现的说明此项第一次出现
    //     if (arr.indexOf(arr[i]) == i) {
    //         arr2.push(arr[i]);
    //     }
    // }
    // console.log(arr2);
</script>

</body>
</html>

 冒泡排序:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <script>
      var num = [22, 3, 33, 44, 55, 66, 332, 2, 1, 4, 6, 7, 8]
      for (var hang = 0; hang < num.length; hang++) {
        for (var tang = 1; tang < num.length - hang; tang++) {
          if (num[tang] < num[tang - 1]) {
            var temp = num[tang - 1]
            num[tang - 1] = num[tang]
            num[tang] = temp
          }
        }
      }
      console.log(num)
    </script>
  </body>
</html>

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!