- Weşand li ser
Seta JavaScript: Dest pêşmergeyên pêşdebiran
- Nivîskar
- Nav
- Imamuzzaki Abu Salam
- https://x.com/ImBIOS_Dev
Çima Set?
Set, yek strukturê daneyê ye ku destûrê dide te ku nirxên yekane yên her cureyê hilîne. Ew dişibihe rêzekê, lê destûrê nade nirxên dubare. Ew rêyek baş e ji bo parastina nirxên yekane yên her cureyê. Carinan tu dixwazî nirxên yekane di rêzekê de hilîne, lê tu naxwazî di rêzekê de bigere da ku kontrol bikî ka nirx berê heye yan na. Ew derê ye ku Set dibe alîkar.
Di nivîsekî berê de, me Xeta Javascript nîqaş kir. Set dişibihe Xetê, lê ew tenê miftehên hildigire, ne nirxên. Ew rêyek baş e ji bo parastina nirxên yekane yên her cureyê. Di gelek rewşan de bikaranîna Xetê zehmet e. Ji ber vê yekê ka em behsa Setê bikin.
Setê JavaScript çi ye?
Objeyên Set, komên nirxan in. Nirxek di Setê de tenê carekê dikare hebe; ew di komê Setê de yekane ye. Tu dikarî ji nirxên Setê bi rêza xwe ya zêdekirinê re derbas bibî. Rêza zêdekirinê li gor rêza her parçeyê ye ku bi serkeftî ji hêla rêbaza add() ve hatî zêdekirin li Setê (ew tê wateyê ku dema Set add() bang dike, tiştekî wekhev berê di Setê de tune bû).
Pêşnûma pêwîst dike ku set bi vî rengî bêne pêkanîn "ku, bi navînî, demên gihîştina wan kêmtir ji hejmara elementên di komê de bin." Ji ber vê yekê, ew dikare di hundur de wekî tabloyek hash (bi lêgerîna O(1)), darê lêgerînê (bi lêgerîna O(log(N))), an her strukturê din ê daneyê were temsîl kirin, heya ku tevlihevî çêtir be ji O(N).
Çawa Setê çêbikin?
Du rê hene ku meriv Setê çêbike. Rêbaza yekem ev e ku meriv ji constructorê Setê sûd werbigire. Rêbaza duyemîn jî ev e ku meriv ji literalê objekta Setê sûd werbigire.
Constructorê Set
Constructorê Setê, objeyek nû ya Setê çêdike. Tu dikarî objektek iterable wekî argumanekê ji constructorê re bişî nî. Elementên objekta iterable dê bên zêdekirin li Setê nû.
const set = new Set([1, 2, 3, 4, 5])
Literalê objekta Set
Literalê objekta Setê, objeyek nû ya Setê çêdike. Tu dikarî objektek iterable wekî argumanekê ji literalê objekta Setê re bişî nî. Elementên objekta iterable dê bên zêdekirin li Setê nû.
const set = {1, 2, 3, 4, 5};
Rêbaz û Taybetmendîyên Setê
Rêbaz | Pênase |
---|---|
add() | Elementê nû bi nirxek taybetî zêde dike li objeya Setê. |
clear() | Hemû elementên ji objeya Setê jê dike. |
delete() | Elementê girêdayî nirxê jê dike û nirxê vedigerîne ku Set.prototype.has(value) berê jê re vedigerand. Set.prototype.has(value) piştî wê dê false vegerîne. |
entries() | Iteratorê nû vedigerîne ku tê de rêzekî [value, value] ji bo her elementê di objeya Setê de, bi rêza zêdekirinê heye. |
forEach() | Carekê ji bo her nirxekê di objeya Setê de, bi rêza zêdekirinê, fonksiyonekê bicih tîne. |
has() | Boleanek vedigerîne ku teqez dike ka element bi nirxê danî di objeya Setê de heye yan na. |
keys() | Iteratorê nû vedigerîne ku tê de nirxên ji bo her elementê di objeya Setê de, bi rêza zêdekirinê heye. |
values() | Iteratorê nû vedigerîne ku tê de nirxên ji bo her elementê di objeya Setê de, bi rêza zêdekirinê heye. |
Taybetmendî | Pênase |
---|---|
size | Hejmara nirxan di objeya Setê de vedigerîne. |
Nimûneyên Setê
Nirxekî li Setê zêde bike
const set = new Set([1, 2, 3, 4, 5])
set.add(6)
console.log(Set) // Set { 1, 2, 3, 4, 5, 6 }
Nirxekî ji Setê jê bike
const set = new Set([1, 2, 3, 4, 5])
set.delete(3)
console.log(set) // Set { 1, 2, 4, 5 }
Kontrol bike ka nirxek di Setê de heye yan na
const set = new Set([1, 2, 3, 4, 5])
console.log(set.has(3)) // true
Ji Setê re derbas bibe
const set = new Set([1, 2, 3, 4, 5])
for (const item of Set) {
console.log(item)
}
// 1
// 2
// 3
// 4
// 5
Setê veguherîne rêzekê
const set = new Set([1, 2, 3, 4, 5])
const array = Array.from(set)
console.log(array) // [1, 2, 3, 4, 5]
Rêzekê veguherîne Setê
const Array = [1, 2, 3, 4, 5]
const set = new Set(array)
console.log(Set) // Set { 1, 2, 3, 4, 5 }
Pîvana Setê bigire
const set = new Set([1, 2, 3, 4, 5])
console.log(set.size) // 5
Setê paqij bike
const set = new Set([1, 2, 3, 4, 5])
set.clear()
console.log(set) // Set {}
Setê bi hev re bicivîne
const set1 = new Set([1, 2, 3, 4, 5])
const set2 = new Set([6, 7, 8, 9, 10])
const set3 = new Set([...set1, ...set2])
console.log(set3) // Set { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
Hevpariya du Setan bigire
const set1 = new Set([1, 2, 3, 4, 5])
const set2 = new Set([4, 5, 6, 7, 8])
const set3 = new Set([...set1].filter((x) => set2.has(x)))
console.log(set3) // Set { 4, 5 }
Cudahiya di navbera du Setan de bigire
const set1 = new Set([1, 2, 3, 4, 5])
const set2 = new Set([4, 5, 6, 7, 8])
const set3 = new Set([...set1].filter((x) => !set2.has(x)))
console.log(set3) // Set { 1, 2, 3 }
Kontrol bike ka Set, ji bo Setê din, komek binirx e yan na
const set1 = new Set([1, 2, 3, 4, 5])
const set2 = new Set([4, 5])
console.log([...set2].every((x) => set1.has(x))) // true
Kontrol bike ka Set, ji bo Setê din, komek bilindtir e yan na
const set1 = new Set([1, 2, 3, 4, 5])
const set2 = new Set([4, 5])
console.log([...set1].every((x) => set2.has(x))) // false
Kontrol bike ka du Set, cuda ne yan na
const set1 = new Set([1, 2, 3, 4, 5])
const set2 = new Set([6, 7, 8, 9, 10])
console.log([...set1].every((x) => !set2.has(x))) // true
Kontrol bike ka du Set, wekhev in yan na
const set1 = new Set([1, 2, 3, 4, 5])
const set2 = new Set([1, 2, 3, 4, 5])
console.log(set1.size === set2.size && [...set1].every((x) => set2.has(x))) // true
Piştgiriya Gerokê
Chrome | Firefox | Edge | Safari | Opera |
---|---|---|---|---|
49+ | 44+ | 12+ | 10.1+ | 36+ |
Set li hember Rêzek
Set | Rêzek |
---|---|
Nirxê yekane, destûrê nade nirxê dubare | Destûrê dide nirxê dubare |
Set, komek nirx e bêyî ku rêzek taybetî hebe | Rêzek, komek nirx e bi rêzek taybetî |
Set, iterable ye | Rêzek, iterable ye |
Set, ji rêzekê di destpêkirinê de hêdîtir e ji ber ku pêvajoyek hashê bikar tîne. | Rêzek, di destpêkirinê de bileztir e |
Performance, di kontrolkirina hebûna elemanekê de, baştir e | Performance, di gihîştina elemanekê de, baştir e |
Ev nivîs bi orjînal li ser blog.imam.dev hatî weşandin.