- خپره شوې پر
جاوا سکرپټ سیټ: د پیل کونکو پروګرامرانو لپاره لومړني معلومات
- لیکوالان
- نوم
- Imamuzzaki Abu Salam
- https://x.com/ImBIOS_Dev
ولې ست؟
ست د معلوماتو يو جوړښت دی چې تاسو ته اجازه درکوي د هر ډول معلوماتو ځانګړې ارزښتونه ذخیره کړئ. دا د آرای سره ورته دی، مګر د دوه ځلې ارزښتونو اجازه نه ورکوي. دا یو ښه لاره ده چې د هر ډول ځانګړي ارزښتونه وساتي. ځینې وختونه تاسو غواړئ په آرای کې ځانګړي ارزښتونه ذخیره کړئ، مګر تاسو نه غواړئ چې د آرای له لارې د ارزښت موجودیت چک کولو لپاره لوپ ورکړئ. په دې ځای کې ست ګټور دی.
په مخکینی مقاله کې، موږ د Javascript Map په اړه بحث وکړ. ست د Map سره ورته دی، مګر دا یوازې کیز ذخیره کوي، نه ارزښتونه. دا د هر ډول معلوماتو د ځانګړي ارزښتونو ساتلو لپاره یو ښه لاره ده. په ډیرو مواردو کې د Map کارول ډیر ستونزمن دي. له همدې امله، راځئ چې د ست په اړه خبرې وکړو.
څه شی دی JavaScript Set؟
ست شیان د ارزښتونو ټولګې دي. ست کې یو ارزښت یوازې یو ځل راښکاره کیدی شي؛ دا د ست ټولګې کې ځانګړی دی. تاسو کولی شئ د داخلي ترتیب په اساس د ست د عناصرو له لارې ګرځئ. د داخلي ترتیب د هغه ترتیب سره مطابقت لري چې هر ټوټه په Set کې د add() میتود په بریالیتوب سره دننه شوی (دا دی، کله چې Set د add() بلنه ورکړه، ست کې لا دمخه ورته عنصر نه و).
مشخصاتو ته اړتیا ده چې سیټونه داسې پلي شي "چې، په اوسط ډول، د لاسرسي وختونه چمتو کړي چې د ټولګې کې د عناصرو شمیر څخه کم وي." له همدې امله، دا په داخلي ډول د هش ټیبل (د O(1) لټون سره)، د لټون ونې (د O(log(N)) لټون سره)، یا کوم بل د معلوماتو جوړښت سره استازیتوب کیدی شي، تر هغه چې پیچلتیا د O(N) څخه ښه وي.
څنګه ست جوړ کړو؟
د ست جوړولو دوه لارې شته. لومړۍ لاره د ست جوړونکي کارول دي. دوهمه لاره د ست شیانو لیټرال کارول دي.
ست جوړونکی
د ست جوړونکی یو نوی ست شی جوړوي. تاسو کولی شئ د جوړونکي ته د آرګومنټ په توګه د ایټریبل شی وړاندې کړئ. د ایټریبل شی عناصرو به د نوي ست کې اضافه شي.
const set = new Set([1, 2, 3, 4, 5])
ست شیانو لیټرال
د ست شیانو لیټرال یو نوی ست شی جوړوي. تاسو کولی شئ د شیانو لیټرال ته د آرګومنټ په توګه د ایټریبل شی وړاندې کړئ. د ایټریبل شی عناصرو به د نوي ست کې اضافه شي.
const set = {1, 2, 3, 4, 5};
د ست میتودونه او ملکیتونه
میتود | توضیحات |
---|---|
add() | د ست شی ته د ځانګړي ارزښت سره یو نوی عنصر اضافه کوي. |
clear() | د ست شی څخه ټول عناصرو حذف کوي. |
delete() | د ارزښت سره تړل شوی عنصر حذف کوي او هغه ارزښت راګرځوي چې Set.prototype.has(value) به مخکې راګرځولی وي. وروسته له هغه Set.prototype.has(value) غلط راګرځوي. |
entries() | یو نوی ایټریټر شی راګرځوي چې د ست شی په هر عنصر [ارزښت، ارزښت] کې د آرای لري، په داخلي ترتیب کې. |
forEach() | د ست شی کې د هر ارزښت لپاره یو ځانګړی فعالیت اجرا کوي، په داخلي ترتیب کې. |
has() | یو بولین راګرځوي چې دا ثابتوي چې آیا په ست شی کې د ورکړل شوي ارزښت سره یو عنصر شتون لري. |
keys() | یو نوی ایټریټر شی راګرځوي چې د ست شی په هر عنصر کې د ارزښتونو لري، په داخلي ترتیب کې. |
values() | یو نوی ایټریټر شی راګرځوي چې د ست شی په هر عنصر کې د ارزښتونو لري، په داخلي ترتیب کې. |
ملکیت | توضیحات |
---|---|
size | د ست شی کې د ارزښتونو شمیر راګرځوي. |
د ست مثالونه
ست ته یو ارزښت اضافه کړئ
const set = new Set([1, 2, 3, 4, 5])
set.add(6)
console.log(Set) // Set { 1, 2, 3, 4, 5, 6 }
ست څخه یو ارزښت حذف کړئ
const set = new Set([1, 2, 3, 4, 5])
set.delete(3)
console.log(set) // Set { 1, 2, 4, 5 }
چک کړئ چې آیا په ست کې یو ارزښت شتون لري
const set = new Set([1, 2, 3, 4, 5])
console.log(set.has(3)) // true
د ست له لارې ګرځئ
const set = new Set([1, 2, 3, 4, 5])
for (const item of Set) {
console.log(item)
}
// 1
// 2
// 3
// 4
// 5
ست آرای ته بدل کړئ
const set = new Set([1, 2, 3, 4, 5])
const array = Array.from(set)
console.log(array) // [1, 2, 3, 4, 5]
آرای ست ته بدل کړئ
const Array = [1, 2, 3, 4, 5]
const set = new Set(array)
console.log(Set) // Set { 1, 2, 3, 4, 5 }
د ست اندازه ترلاسه کړئ
const set = new Set([1, 2, 3, 4, 5])
console.log(set.size) // 5
ست پاک کړئ
const set = new Set([1, 2, 3, 4, 5])
set.clear()
console.log(set) // Set {}
ست مدغم کړئ
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 }
د دوو ستونو تقاطع ترلاسه کړئ
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 }
د دوو ستونو تر منځ توپیر ترلاسه کړئ
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 }
چک کړئ چې آیا ست د بل ست فرعي مجموعه ده
const set1 = new Set([1, 2, 3, 4, 5])
const set2 = new Set([4, 5])
console.log([...set2].every((x) => set1.has(x))) // true
چک کړئ چې آیا ست د بل ست سوپر مجموعه ده
const set1 = new Set([1, 2, 3, 4, 5])
const set2 = new Set([4, 5])
console.log([...set1].every((x) => set2.has(x))) // false
چک کړئ چې آیا دوه ستونه بېل دي
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
چک کړئ چې آیا دوه ستونه مساوي دي
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
د براوزر ملاتړ
![]() | ![]() | ![]() | ![]() | ![]() |
---|---|---|---|---|
49+ | 44+ | 12+ | 10.1+ | 36+ |
ست vs. آرای
ست | آرای |
---|---|
ځانګړی ارزښت، د دوه ځلې ارزښت اجازه نه ورکوي | د دوه ځلې ارزښت اجازه ورکوي |
ست د ارزښتونو ټولګه ده چې په ځانګړي ترتیب کې نه دي | آرای د ارزښتونو ټولګه ده چې په ځانګړي ترتیب کې دي |
ست ایټریبل دی | آرای ایټریبل دی |
ست په پیل کې د آرای څخه وروسته دی ځکه چې دا د هش پروسه کاروي. | آرای په پیل کې ګړندی دی |
د عنصر شتون چک کولو کې فعالیت غوره دی | د عنصر لاسرسي کې فعالیت غوره دی |
دا مقاله په اصل کې په blog.imam.dev کې خپره شوې ده.