Heim  >  Artikel  >  Web-Frontend  >  Methoden zur Deduplizierung/Suche/Einfügung/Löschung von JavaScript-Arrays

Methoden zur Deduplizierung/Suche/Einfügung/Löschung von JavaScript-Arrays

一个新手
一个新手Original
2017-10-26 10:06:041983Durchsuche

Array-Deduplizierung

Prototyp-Methode

//---------------first---------------
 Array.prototype.distinct = function(){
      var arr=[];
      var obj={}; //对象承接
      for(var i=0,len=this.length;i<len;i++){
          if(!obj[this[i]]){
              obj[this[i]]=1;
              arr.push(this[i]);
          }
      }
   return arr;
};
var arr = new Array();
arr.push(1,3,2,4,4,4,5,6,7,8,8,8,9,0);

//--------------second----------------
 Array.prototype.distinct = function(){
    var arr=[];
    for(var i=0,len=this.length;i<len;i++){
      if(this[i]==this[i+1]){
        continue;
      }else{
        arr.push(this[i]);
      }    
    }
 return arr;
};
var arr = new Array();
arr.push(1,3,2,4,4,4,5,6,7,8,8,8,9,0);

//----------------third----------------
Array.prototype.distinct = function(){ 
    for(var i=0,len=this.length;i<len;i++){
      for(var j=i+1;j<=len;j++){
        if(this[i]==this[j]){
          console.log(this[j]);
          this.splice(j,1);
          j--; //得考虑如果删除一个元素,j的值需要减1
          len--;
        }
      }    
    }
  //return this;
};
var arr = new Array();
arr.push("a","b","c","c","b","bb","dd","d","aa","c","bb");
arr.distinct();

Normale Methode

function removeRepeat(arr){
   var array=[];
   var obj={};
   for(var i=0,len=arr.length;i<len;i++){
      if(!obj[arr[i]]){
        obj[arr[i]]=1;
        array.push(arr[i]);
      }
   }
   return array;
};
var arr = new Array(1,3,2,4,4,4,5,6,7,8,8,8,9,0);
var array = removeRepeat(arr);

Array-Suche

Sequentielle Suche

function SequenceSearch(arr, value){
    var i;
    for(i=0; i<arr.length; i++){
         if(arr[i]==value)
         return i;
    }
    return -1;
}

Binäre Suche

Binäre Suchelemente müssen in der richtigen Reihenfolge sein. Wenn sie ungeordnet sind, muss zuerst ein Sortiervorgang durchgeführt werden

-------------折半查找--------------
function BinarySearch1(arr, value){
    var low, high, mid;
    low = 0;
    high = arr.length-1;
    while(low<=high){
        mid = Math.floor((low+high)/2);
        if(a[mid]==value){
             return mid;
        }
        if(a[mid]>value){
            high = mid-1;
        }
        if(a[mid]<value){
            low = mid+1;
        }
    }
    return -1;
}
-------------递归版本--------------
function BinarySearch2(arr, value){
    var low, high, mid;
    low = 0;
    high = arr.length-1;
    var mid = low+(high-low)/2;
    if(arr[mid]==value){
        return mid;
    }
    if(a[mid]>value){
        return BinarySearch2(arr, value);
    }
    if(a[mid]<value){
        return BinarySearch2(arr, value);
    }
}

Array-Einfügung

Sequentielles Einfügen

//----------------first----------------
function Insert(arr, n, data){
    //若插入数据位置不在表尾
    if (n < arr.length){
        //将要插入位置之后元素依次向后移动一位
        for (var i = seqList.ListLen - 1; i >= n; i--) {
            seqList.ListData[i + 1] = seqList.ListData[i];
        }
    }
    //将数据插入到位置为n的位置并将数组的长度加1
    seqList.ListData[n-1] = data;
    seqList.ListLen++;
    return true;
}

//----------------second----------------
function  aa(arr, val) {
    for (var i = 0; i <arr.length; i++) {
        if (arr[i] == val) return i;
    }
    return -1;
};
function bb(arr, val) {
    var index =arr.indexOf(val);
    if (index > -1) {
    arr.splice(index, 1);
    }
};
var emp = [&#39;abs&#39;,&#39;dsf&#39;,&#39;sdf&#39;,&#39;fd&#39;]
bb(emp, &#39;fd&#39;);

Array-Löschen

function Delete(arr, n){
    //判断数组是否为空
    if (seqList.ListLen == 0) return false;
    //判断n的位置是否合法
    if (n < 1 || n > seqList.ListLen) return false;
    //如果删除不是最后位置
    if (n < seqList.ListLen) {
        //将删除位置后继元素依次前移
        for (int i = n; i < seqList.ListLen; i++) {
            seqList.ListData[i-1] = seqList.ListData[i];
        }
    }
    //表长减1
    seqList.ListLen--;
    return true;
}

Das obige ist der detaillierte Inhalt vonMethoden zur Deduplizierung/Suche/Einfügung/Löschung von JavaScript-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn