خپره شوې پر

جاوا سکرپټ سیټ: د پیل کونکو پروګرامرانو لپاره لومړني معلومات

لیکوالان

ولې ست؟

ست د معلوماتو يو جوړښت دی چې تاسو ته اجازه درکوي د هر ډول معلوماتو ځانګړې ارزښتونه ذخیره کړئ. دا د آرای سره ورته دی، مګر د دوه ځلې ارزښتونو اجازه نه ورکوي. دا یو ښه لاره ده چې د هر ډول ځانګړي ارزښتونه وساتي. ځینې ​​​​وختونه تاسو غواړئ په آرای کې ځانګړي ارزښتونه ذخیره کړئ، مګر تاسو نه غواړئ چې د آرای له لارې د ارزښت موجودیت چک کولو لپاره لوپ ورکړئ. په دې ځای کې ست ګټور دی.

په مخکینی مقاله کې، موږ د 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

د براوزر ملاتړ

ChromeChromeFirefoxFirefoxEdgeEdgeSafariSafariOperaOpera
49+44+12+10.1+36+

ست vs. آرای

ستآرای
ځانګړی ارزښت، د دوه ځلې ارزښت اجازه نه ورکويد دوه ځلې ارزښت اجازه ورکوي
ست د ارزښتونو ټولګه ده چې په ځانګړي ترتیب کې نه ديآرای د ارزښتونو ټولګه ده چې په ځانګړي ترتیب کې دي
ست ایټریبل دیآرای ایټریبل دی
ست په پیل کې د آرای څخه وروسته دی ځکه چې دا د هش پروسه کاروي.آرای په پیل کې ګړندی دی
د عنصر شتون چک کولو کې فعالیت غوره دید عنصر لاسرسي کې فعالیت غوره دی

دا مقاله په اصل کې په blog.imam.dev کې خپره شوې ده.

حوالې

  1. Mozilla Developer Network - Set

  2. W3Schools - Set

  3. ECMAScript® 2015 Language Specification - Set