JavaScript實現集合(ES5動態原型模式)

2021-09-10 15:54:00 字數 4024 閱讀 1593

集合的概念

集合是由一組無序且唯一(即不能重複)的項組成的。這個資料結構使用了與有限集合相同的數學概念,但應用在電腦科學的資料結構中。你也可以把集合想象成乙個既沒有重複元素,也沒有順序概念的陣列。

集合的結構

function

set();

if(typeof

this

.add !=

'function');

set.prototype.

remove

=function

(value)

; set.prototype.

has=

function

(value)

; set.prototype.

clear

=function()

; set.prototype.

size

=function()

; set.prototype.

sizelegacy

=function()

; set.prototype.

values

=function()

; set.prototype.

valueslegacy

=function()

; set.prototype.

union

=function

(otherset)

; set.prototype.

intersection

=function

(otherset)

; set.prototype.

difference

=function

(otherset)

; set.prototype.

subset

=function

(otherset);}

}

has方法

思路:利用所有物件都有的hasownproperty方法

set.prototype.

has=

function

(value)

;

add方法

set.prototype.

add=

function

(value)

return

false;}

;

remove方法

set.prototype.

remove

=function

(value)

};

獲取集合元素個數

set.prototype.

size

=function()

;set.prototype.

sizelegacy

=function()

}return count;

};

獲取集合

set.prototype.

values

=function()

;set.prototype.

valueslegacy

=function()

return keys;

};

並操作∪

思路:利用基本操作,將兩個集合的元素add到新的集合中

set.prototype.

union

=function

(otherset)

values = otherset.

values()

;for

(var i =

0; i < values.length; i++

)return unionset;

};

交操作∩

思路:利用基本操作,看看兩個集合中是否都有此元素,再加入到新集合

set.prototype.

intersection

=function

(otherset)

}return intersectionset;

};

差操作-

思路:看看是否乙個集合有乙個集合沒有此元素,再加入到新集合

set.prototype.

difference

=function

(otherset)

}return differenceset;

};

判斷是否為另一集合的子集

思路:先判斷元素個數,再判斷是否在父集合中都有子集合的元素

set.prototype.

subset

=function

(otherset)

else

}return

true;}

};

源**

function

set();

if(typeof

this

.add !=

'function'

)return

false;}

; set.prototype.

remove

=function

(value)};

set.prototype.

has=

function

(value)

; set.prototype.

clear

=function()

;}; set.prototype.

size

=function()

; set.prototype.

sizelegacy

=function()

}return count;};

set.prototype.

values

=function()

; set.prototype.

valueslegacy

=function()

return keys;};

set.prototype.

union

=function

(otherset)

values = otherset.

values()

;for

(var i =

0; i < values.length; i++

)return unionset;};

set.prototype.

intersection

=function

(otherset)

}return intersectionset;};

set.prototype.

difference

=function

(otherset)

}return differenceset;};

set.prototype.

subset

=function

(otherset)

else

}return

true;}

};}}

JavaScript 常用方法集合

這篇日誌用於記錄工作中經常使用到的一些通用的js方法,用於做做筆記 1 計算時間,傳入秒,計算有多少天 秒轉天 param mss 需要轉換的數值,單位秒 function secongtoday mss 2 根據日期計算年齡 根據日期計算年齡 param strbirthday 生日日期字串 yy...

常用的JavaScript指令碼集合

寫登錄檔 tablae相關 客戶端動態增加行列 身份證嚴格驗證 驗證 位址 加sp1後還能用的無邊框視窗!chromeless window temp temp content temp temp cw body.innerhtml temp settimeout insert content 10...

Javascript遍歷map集合以及map物件

在遍歷map的時候發現了,map物件和map集合的遍歷是有很大的不同。map集合是無序的,並且主鍵是唯一的。集合中的鍵和值可以是任何型別。如果使用現有金鑰向集合新增值,則新值會替換舊值。var map for var key in map 輸出結果 objectvar m new map m.set...