数组去重

<!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);
  // ES6数组去重
  // var arr [1,2,4,3,5,4,7,6,8,6,4,3,2,14,5]
  // arr = [...new Set(arr)]
  // ES6第二种方法
  // Array.from(new Set(arr))
</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>
原文地址:https://www.cnblogs.com/maxiag/p/11168801.html