چگونه آرایه ای از اشیاء را بر اساس نام ویژگی در جاوا اسکریپت مرتب کنیم
در این آموزش، با یکی از متداولترین عملیاتی که در حین کار با جاوا اسکریپت انجام میدهید، آشنا خواهید شد: مرتبسازی آرایهای از اشیا بر اساس نام ویژگی.
مفاهیم پایه آرایه
بیایید برخی از مفاهیم اساسی جاوا اسکریپت را قبل از پرداختن عمیق تر به موضوع مرور کنیم تا اطلاعات پس زمینه مورد نیاز خود را داشته باشید.
آرایه های جاوا اسکریپت و آرایه اشیاء
آرایه ها یکی از بلوک های اساسی هر زبان برنامه نویسی هستند. آنها ساده ترین ساختار داده هستند، اما آنقدر قدرتمند هستند که ساختار داده زیربنایی بسیاری از برنامه هایی هستند که امروزه استفاده می کنیم.
معمولی ترین کاربرد آرایه ها ارسال داده از یک ماشین به ماشین دیگر است. منظورم از ماشین، کلاینت، سرور، سرور پایگاه داده و غیره است. چنین داده هایی اغلب مجموعه ای از رکوردهای مشابه هستند که در یک آرایه گروه بندی شده اند. هر رکورد با یک شی نشان داده می شود که یک عنصر آرایه است.
به این آرایه ها آرایه اشیاء می گویند. در اینجا نمونه ای از آرایه ای از اشیاء در جاوا اسکریپت آمده است:
همانطور که می بینید، این به سادگی یک آرایه است. و هر عنصر در آرایه یک شی است. از این رو نام، آرایه از اشیاء .
شما می توانید آرایه ای از اشیاء را مانند هر آرایه دیگری مدیریت کنید و از توابع آرایه داخلی استفاده کنید. اما شرایطی وجود دارد که استفاده از توابع داخلی امکان پذیر نیست و برای رسیدن به هدف باید تغییرات خاصی را انجام دهید.
کلیدهای موجود در اشیاء جاوا اسکریپت
اشیاء در جاوا اسکریپت مجموعهای از جفتهای کلید-مقدار هستند که هر کلید مقدار خاصی را مشخص میکند. کلیدها را به عنوان برچسب هایی که برای بازیابی اطلاعات از فرهنگ لغت اختصاص می دهید در نظر بگیرید. برای مثال:
در مثال بالا، id
، name
و age
کلیدها هستند در حالی که '1'، 'John' و '25' مقادیر متناظر آنها هستند. وقتی در مورد مرتبسازی آرایهای از اشیاء بر اساس یک کلید صحبت میکنیم، منظور ما مرتبسازی عناصر آرایه بر اساس مقادیر مرتبط با یک ویژگی خاص در هر شی است.
تعیین نوع داده یک ویژگی
قبل از مرتب سازی، بسیار مهم است که نوع داده خاصیتی را که می خواهید به عنوان کلید مرتب سازی استفاده کنید، درک کنید. جاوا اسکریپت قوانین مرتب سازی متفاوتی برای مقادیر عددی و رشته ای دارد. دانستن نوع داده به ما کمک می کند تا روش مرتب سازی مناسب را انتخاب کنیم.
اگر از نوع داده مطمئن نیستید، می توانید نوع داده را با اپراتور typeof
تحلیل کنید یا نوع را به مورد دلخواه خود تبدیل کنید.
// Checking if the type is as expected if(typeof obj.name === "string") { // Do something } // Converting property's type const string = String(obj.propertyName) const number = Number(obj.propertyName)
چگونه یک آرایه از اشیاء را با یک کلید خاص از شی مرتب کنیم
قبل از مرتب سازی آرایه باید دو چیز را بدانیم:
نوع داده: نوع داده مقداری را که قصد داریم مرتب کنیم را درک کنیم.
ترتیب مرتب سازی: تعیین کنید که قصد داریم به ترتیب صعودی یا نزولی مرتب کنیم.
ما موارد استفاده مختلف را پوشش خواهیم داد تا تصویر کاملی از این مفاهیم بدست آوریم.
چگونه یک آرایه را بر اساس مقادیر عددی مرتب کنیم
بیایید با مرتب کردن یک آرایه بر اساس مقادیر عددی، به ویژه ویژگی age، شروع کنیم. هدف ما این است که عناصر آرایه (یعنی اشیاء) را بر اساس ویژگی age
به ترتیب صعودی مرتب کنیم. متد sort()
داخلی ابزار انتخابی ما خواهد بود:
و بس! اشیاء در آرایه بر اساس ویژگی age
مرتب می شوند. شما می توانید این موضوع را با وارد کردن خروجی در کنسول تأیید کنید:
اگر می خواهید به ترتیب نزولی مرتب کنید، فقط باید موقعیت متغیرهای داخل تابع را تغییر دهید.
درست مانند آن، آرایه به ترتیب age
نزولی مرتب می شود.
مرتبسازی اعداد در یک آرایه آسان است – پس حالا بیایید چیز کمی سختتر را امتحان کنیم: مرتبسازی بر اساس مقادیر رشته.
چگونه یک آرایه را بر اساس مقادیر رشته مرتب کنیم
من در روزهای ابتدایی برای انجام این عمل تلاش زیادی کردم. در نهایت، ساده ترین روش را برای انجام آن پیدا کردم. مشابه مثال قبلی، در اینجا قصد داریم اشیاء را بر اساس مقادیر رشته مرتب کنیم.
ما از یک تابع رشته داخلی localCompare()
استفاده خواهیم کرد. برای مقایسه رشته ها بر اساس ترتیب حساس به زبان استفاده می شود. بیایید تابع sort()
را با کمک این تابع بنویسیم:
همانطور که پیش بینی می شود، عناصر آرایه بر اساس ویژگی name
در داخل هر عنصر شی مرتب می شوند.
مرتب سازی به ترتیب نزولی نیز کار بیهوده ای است:
موارد لبه ای که باید در نظر گرفته شوند
در حین مرتب سازی آرایه های اشیاء، پرداختن به موارد لبه بالقوه ضروری است.
کلید باید در همه اشیا وجود داشته باشد
اطمینان حاصل کنید که کلید مورد استفاده برای مرتب سازی در همه اشیا وجود دارد. حتی اگر یک شی واحد کلید را از دست داده باشد، آرایه اصلی بدون تغییر برگردانده می شود. در اینجا نحوه رسیدگی به چنین موردی آمده است:
مقادیر تهی یا تعریف نشده نباید وجود داشته باشد
کلیدی که می خواهید برای مرتب سازی استفاده کنید نباید null
یا undefined
باشد. اگر مقدار نادرست باشد می توانید به جای کلید یک رشته خالی ارسال کنید.
همه مقادیر باید رشته ای برای مقایسه رشته ها باشند
هنگام مرتبسازی اشیاء بر اساس یک کلید خاص، اگر قرار است کلید یک رشته باشد، مطمئن شوید که کلید در همه موارد دارای نوع داده String است. یک راه حل برای جلوگیری از اشکالات احتمالی، تبدیل کلید به رشته ای در تابع sort()
است.
حساسیت محلی
وقتی با خصوصیات رشته سروکار دارید، حساسیت زبان و حروف کوچک و بزرگ را در نظر بگیرید. اطلاعات محلی و گزینه های مناسب را برای localeCompare()
فراهم کنید.
بسته شدن
درک عملیات آرایه باعث افزایش کارایی کد شما و بهبود عملکرد برنامه شما می شود. در این مقاله یاد گرفتید که چگونه آرایه های اشیاء را بر اساس یک کلید از داخل شی مرتب کنید.
امیدوارم این مقاله برای شما مفید بوده باشد. اگر چنین کردید، فراموش نکنید که آن را با دوستان خود به اشتراک بگذارید تا دیگران نیز از آن بهره مند شوند. اگر روش بهتری برای مرتب سازی آرایه ها می شناسید، به من بگویید! من دوست دارم یاد بگیرم.
اگر می خواهید سلام کنید، من در توییتر فعال هستم (اکنون X ) !
مطالب بیشتر
تابع جاوا اسکریپت l ocaleCompare( ).
تا دفعه بعد کدنویسی مبارک :)
ارسال نظر