刪除數組中指定元素的javascript代碼

來源:互聯網
上載者:User

刪除數組指定元素的原理很簡單,無非就是遍曆數組尋找到給定的元素是否在,找到如果在找就刪除,下面我們通過一個應用執行個體來說明。

 

arraywithout = function(){
  if (arguments.length < 2) {
// arguments 是特殊的對象,代表函數的參數.
    return arguments.length == 1 ? arguments[0] : null;
  }
  var results = [];
   var aa = arguments[0];
//將第一參數賦給數組aa;
  if (aa === null || aa.constructor != array) {
    return null;
//如果aa不存在或者不是數組,那麼返回null;
  }
  if(arguments[1].constructor == array){
// 如果第二個參數是數組,則將參數數組中對應的每個元素都刪除;
    var args = [];
    args[0] = aa;
//aa = arguments[0] 將aa賦給數組args,作為其第一個元素值;
    foreach(arguments[1], function(v, i){
//引用了函數foreach,來對數組arguments[1]中每個元素進行操作,
      args[i+1] = v;
// v代表數組arguments[1]中每個元素值,將它們一一賦值給args[1],args[2]...,而args[0]=arguments[0];
   });
   }
   else{
    args = arguments;
//如果第二個參數不是數組,則直接將參數數組賦給args;
  }
  for(var i = 0;i < aa.length; i ++){
    var iswithout = true;
    for(var j = 1; j < args.length ; j ++){
      if(aa[i] == args[j]){
       iswithout = false;
       break;
// 切記j是從1開始的,因為args的第一元素args[0]是arguments[0],正是我們要處理的的原數組,等同於數組aa;
讓要刪除的各個元素與原數組aa中的某一元素進行逐次比較,如果相同,break 跳出迴圈; iswithout返回false,所以也不再執行下面的 results.push(aa[i]);
    }
   }
     if (iswithout) {
       results.push(aa[i]);
        //所謂刪除原理,就是將原數組各元素與要刪除的元素進行比較,保留與要刪除的元素不相同的元素並賦給一個新的數組results;
    }
  }
  return results;
//返回已經刪除了指定元素的數組;
};
// 引用arraywithout的例子
var testarray = [1,2,3,4,5,1,2,'w'];
var result = arraywithout(testarray, 1, 3);
//var result = arraywithout(testarray, [1, 4]);
alert(result) //[2,4,5,2]

總結,這裡用到push,如果遍曆資料然後進行比較再刪除這樣就實現的刪除指定數組元素了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.