js如何刪除陣列中是否有重複內容程式碼

antzone發表於2017-04-06

本章節分享一段程式碼例項,它實現了刪除陣列中重複元素。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
Array.prototype.del = function(){
  var a = {}, c = [], l = this.length;
  for (var index = 0; index < l; index++) {
    var b = this[index];
    var d = (typeof b) + b;
    if (a[d] === undefined) {
      c.push(b);
      a[d] = 1;
    }
  }
  return c;
}
var arr=[1,2,3,5,9,2];
console.log(arr.del());
console.log(arr);

上面的程式碼實現了我們的要求,del()方法會返回一個新的陣列,原來的陣列不變,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).Array.prototype.del = function(){},通過原型為陣列物件新增一個del()方法。

(2).var a = {}, c = [], l = this.length,分別宣告一個物件陣列,並且獲取原來陣列的長度。

(3).for (var index = 0; index < l; index++){},遍歷陣列中的每一個元素。

(4).var b = this[index],獲取指定索引的陣列元素,並複製給變數b。

(5).var d = (typeof b) + b,這個用來生成一個物件a的屬性名稱,能夠區別資料型別,比如"3"和3是不同的。

(6).if (a[d] === undefined) {

   c.push(b);

   a[d] = 1;

},如果不存在指定的屬,就說明當前陣列元素在此時刻還是唯一的,那麼將其存入陣列C。

然後將屬a[d]的值設定為1。

(7).return c,返回這個新的陣列。

二.相關閱讀:

(1).prototype可以參閱javascript prototype原型一章節。

(2).push()方法可以參閱javascript push()一章節。

相關文章