javascript刪除陣列中重複元素程式碼例項

admin發表於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,5,9,12,2];
console.log(arr.del());

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

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

(2).var a = {}, c = [], l = this.length;

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,宣告一個變數d,它是用作物件的屬性。(typeof b) + b可以防止只是用b作為屬性出現的"1"和1被認為同一個屬性的情況。

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

  c.push(b);

  a[d] = 1;

},判斷物件中是否具有相應的屬性。

如果沒有,那麼就將此元素存入陣列C。

並且將a的屬性名設定為d,屬性值為1。

二.相關閱讀:

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

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

(3).typeof可以參閱javascript typeof 一章節。

相關文章