数组问题

一,数组去重数组

利用indexOfbash

function unqiue(ary) {
        var newArr = [];
        for (var i = 0 ; i < ary.length ; i++){
            var cur = ary[i];
            if (newArr.indexOf(cur) === -1) {
                newArr.push(cur);
            }
        }
        return newArr;
    };
    var res = unqiue([3,5,5,6,3,2,1,3,2]);
    console.log(res);

复制代码

利用对象方法去重ui

function unique(ary) {
       var obj = {};
       var newArr = [];
       for (let i = 0; i < ary.length; i++) {
           const arr = ary[i];
           if(!obj[arr]){
               newArr.push(arr);
               obj[arr] = true;
           }
       }
       obj = null;
       return newArr;
   }

   var res = unique([3,45,6,3,45]);
   console.log(res);
复制代码

双for循环去重 避免数组塌陷问题,j++后利用j--.spa

for (let i = 0; i < ary.length; i++) {
        const aryE = ary[i];
        for (let j = i + 1; j < ary.length; j++) {
           if(aryE === ary[j]){
               ary.splice(j,1);
               j--;
          }
      }
复制代码

二,数组排序3d

1.冒泡排序code

主要是当前项和后一项比较,若是当前项大于后一项,就交换位置,在比较中,数组一共须要比较arr.length - 1轮,每一轮比较都会获得一个最大值,其中在两轮比较中,已经有两个最大值,因此不须要比较,所以,以下大妈cdn

(引用图片)

function bubbleSort(ary) {
          
         // 外层循环控制比较轮数 i的值标记几轮
         for (var i = 0; i < ary.length - 1; i++) {
           // 内层循环控制比较次数
           for (var j = 0; j < ary.length - 1 - i; j++) {
             if (ary[j] > ary[j + 1]) {
                var temp = ary[j];
                ary[j] = ary[j + 1];
                ary[j + 1] = temp;
             }
           }
         }
         return ary;
      }
      console.log(bubbleSort(arr))
复制代码

2.选择排序对象

每轮在未排序的序列中,找到最小元素,每轮比较完,就让最小元素和起始的那一项交换位置blog

(引用图片)

function select_sort(ary) {
      // 外层循环负责指定比较的起始位置
      for (var i = 0; i < ary.length - 1; i++) {       
      // minIdx每次最小值索引位置
        var minIdx = i 
        for (var j = i + 1; j < ary.length; j++) {
          if (ary[j] < ary[minIdx]) {
            minIdx = j
          }
        }
        // 比较完每轮 让最小值arr[minIdx]和起始位置那一项arr[i]交换位置
        var temp = ary[i]
        ary[i] = ary[minIdx]
        ary[minIdx] = temp
      }
      return ary
    }
复制代码
相关文章
相关标签/搜索