js數組增刪查改

來源:互聯網
上載者:User

標籤:使用數組   參數   增刪查改   需要   一個   結果   amp   slice   選擇   

一、插入

  1. 順序插入

 1 function Insert(arr, n, data){ 2  3             //若插入資料位元置不在表尾 4             if (n < arr.length) 5             { 6                 //將要插入位置之後元素依次向後移動一位 7                 for (var i = seqList.ListLen - 1; i >= n; i--) 8                 { 9                     seqList.ListData[i + 1] = seqList.ListData[i];10                 }11             }12             //將資料插入到位置為n的位置並將數組的長度加113             seqList.ListData[n-1] = data;14             seqList.ListLen++;15             return true;16 }

二、刪除

  1. 原型方法

//給Array本機物件增加一個原型方法,它用於刪除數組條目中重複的條目(可能有多個),傳回值是一個包含被刪除的重複條目的新數組。//the first method------prototype----            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);          console.log(arr);          console.log(arr.distinct());        

//the second method-----prototype
  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);
  console.log(arr);
  console.log(arr.distinct());
  //slice(start,end) 返回的是裁下來的元素數組
  console.log(arr.slice(2,4));
  console.log(arr);
  //splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數組進行修改
  arr.splice(0,2,80);
  console.log(arr);

//the third method-----前一個和之後全部的元素比較

  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");
  //var cc = arr.splice(5,1)[0];
  console.log(arr);
  //console.log(cc);
  arr.distinct()
  console.log(arr);

  2. 普通函數

  

 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);  console.log("removeRepeat : " + array);  console.log(arr);

三、增加

四、尋找

五、排序

/*//-------------冒泡排序(從小到大)-------------              for(var i=0,len=arr.length;i<len;i++){                  for(var j=i+1;j<len;j++){                    if(arr[i]>arr[j]){  //將最大的放在最後                        var temp=0;                        t=arr[i];                         arr[i]=arr[j];                        arr[j]=temp;                    }                  }              }              //--------第二種(改善)------------              for(var i=1,len=arr.length;i<len;i++){                  for(var j=0;j<len-i;j++){  //已經排序好的最大數組不必在比較                    if(arr[j]>arr[j+1]){                          var temp=0;                        t=arr[i];                         arr[i]=arr[j];                        arr[j]=temp;                    }                  }              }              */            /*//-------------選擇排序(從小到大)-------------              for(var i=0,len=arr.length-1;i<len;i++){                  int min = i;                  for(var j=i+1;j<len;j++){                    if(arr[min]>arr[j]){                        min=j;                    }                }                    if(min!=i){                    var temp=0;                    t=arr[min];                    arr[min]=arr[i];                    arr[i]=temp;                }                  }*/              /*//-------------直接插入排序(從小到大)-------------              for (int i = 1; i < arr.Length; i++){                if (arr[i - 1] > arr[i])                {                    int temp = arr[i];  //每次取出當前的要比較的值                    int j = i;                    while (j > 0 && arr[j - 1] > temp) //大於它的話,要賦值給它                    {                        arr[j] = arr[j - 1];                        j--;                    }                    arr[j] = temp;                }            }*/              /*//-------------js實現快速排序(從小到大)-------------*/              /*//-----------------first---------------            var quickSort = function(arr){                var arr = arr.concat(); //concat的新用法(深複製)                if(arr.length<=1) return arr;                var index = Math.floor(arr.length/2);                var centerValue = arr.splice(index,1);                //console.log(centerValue);                var left = [];                var right = [];                for(var i=0,len=arr.length;i<len;i++){                    if(centerValue>=arr[i]){                        left.push(arr[i]);                    }else{                        right.push(arr[i]);                    }                }                // debugger                //console.log(quickSort(left));                //console.log(right);                var res1 = arguments.callee(left);                var res2 = arguments.callee(right);                //return left.concat(right);                return res1.concat(centerValue,res2);            }            var arr=[9,8,7,4,5,3,77];                        var result = quickSort(arr);              console.log(result);              console.log(arr);*/              //-----------------second---------------              var quickSort = function(arr){                if(arr.length<=1) return arr;                var index = Math.floor(arr.length/2);                console.log(index); //1                var centerValue = arr.slice(index,index+1)[0];                console.log(centerValue); //5                var left = [];                var right = [];                for(var i=0,len=arr.length;i<len;i++){                    if(centerValue>=arr[i]){                        left.push(arr[i]);                    }else{                        right.push(arr[i]);                    }                }                var res1 = arguments.callee(left);                var res2 = arguments.callee(right);                return res1.concat(res2);            }            var arr=[9,8,7,4,5,3,4,77];                        //var result = quickSort(arr);              //console.log(result);              console.log(arr);              var aa=[3,4];              //console.log(aa.slice(1,2));              console.log(aa.splice(0,0));              /*//-------------反轉排序-----------------              for(var i=0,len=arr.length-1;i<len/2;i++){                    var temp=0;                    t=arr[i];                    arr[i]=arr[len-1-i];                    arr[len-1-i]=temp;                  }*/              /*//-------------參數排序(從小到大)-----------------              function mySort() {                var tags = new Array();//使用數組作為參數儲存容器                tags = Array.prototype.slice.call(arguments);                tags.sort(function(a,b){                    return a-b;                })                return tags;//返回已經排序的數組            }                         var result = mySort(50,11,16,32,24,99,57,100); //傳入參數個數不確定            console.info(result); //顯示結果              */

 

js數組增刪查改

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.