ساناز محمودی
ساناز محمودی
خواندن ۲ دقیقه·۴ سال پیش

Associative arrays supported in js or not ?

خب سلام.

این اولین پست من توی ویرگوله و باید از همین اولش بگم من قدرت بیان چندان خوبی ندارم ولی وقتی نتایج رو دیدم ترجیح دادم بیام یه توضیح کوچکی بدم و برم.

خب سوال این بود که آیا آرایه با named index داریم یا نه و خیلیاتون اومدید گفتید که ساپورت نمیشه که تقریبا هم درسته. حالا چرا تقریبا ؟ همونطور که هینت داده بودم، حتما خروجی کنسول‌و میخواستم و خب مرسی که نرفتید تو کنسول چک کنید :)

خب بریم یه توضیح بدیم اول راجع Associative array or hash در واقع آرایه هایی هستند که میتونیم با یک string key به المنت های آرایه دسترسی داشته باشیم که تو بعضی زبان ها ساپورت میشه اما تو جاوااسکریپت نه.

خب چیزی تو جاوااسکریپت تعریف شده، اینکه :

Array with numbered index and Object with named index

و همینم فرق بین آبجکت و آرایه تعریف میکنه که کی و چه وقت از کدوم استفاده کنیم. تا اینجای کار اگه خروجی و تو کنسول نمیخواستم گزینه اول درست بود.

بریم خروجی رو ببینیم تو کنسول :

درسته که دسترسی به المنتای یک آرایه از طریق numbered index میباشد، همونطور که تو مثال بالا دیدیم ولی چون آرایه ها نوعی از آبجکت هستند و در واقع ارث بری میکنند پس اگر آرایه ای با named index استفاده کنیم، خود جاوااسکریپت این رو به یک استاندارد آبجکت redefine میکنه ("دوباره تعریف کردن") و به عنوان property میشناسه و میتونیم به مقدارش دسترسی داشته باشیم ولی تاثیری رو طول آرایه نداره و نمیتونیم با numbered index بهش دسترسی داشته باشیم.

همونطور که میبنید انگاری پراپرتی 0 مقدارش 1 عه و پراپرتی 1 مقدارش 2 عه و پراپرتی name مقدارش sanaz عه. ولی دسترسی به المنتای یک آرایه فقط از طریق numbered index عه و پراپرتی های از جنس عددی (numeric properties) رو به عنوان المنتای تو آرایه میشناسه و نشون میده و میتونید متد های آرایه رو، روشون استفاده کنید.

خب نمیدونم چه قد خوب توضیح دادم ولی امیدوارم مفید واقع شه. اگه نشد، برید حتما You Don't Know Js رو بخونید "cuz WE All Don't Know Js"

We all don't know.
We all don't know.




arrayjavascript
Computer Enthusiast
شاید از این پست‌ها خوشتان بیاید