از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
مرتب سازی کلیدهای شی جاوا اسکریپت
سرفصلهای مطلب
معرفی
امروز به روش مرتب سازی کلیدها/ویژگی ها در اشیاء جاوا اسکریپت می پردازیم. این یک ناحیه خاکستری در JS است زیرا کلیدهای شی مانند موارد آرایه ترتیب ذاتی ندارند، اما این بدان معنا نیست که امکان پذیر نیست.
اشیاء جاوا اسکریپت
در جاوا اسکریپت، یک شی یک موجودیت با ویژگی ها و مقادیر است. این مانند یک جعبه ذخیره سازی است که می توانید انواع مختلفی از اقلام را در آن قرار دهید. هر مورد در جعبه از طریق یک کلید منحصر به فرد قابل دسترسی است. در اینجا یک مثال ساده از یک شی آورده شده است:
let student = {
name: "John Doe",
age: 20,
grade: "A"
};
در این شیء، name
، age
، و grade
کلیدها (همچنین به عنوان خواص شناخته می شوند)، و “John Doe”، 20، و “A” مقادیر متناظر آنها هستند.
توجه داشته باشید: کلیدها در اشیاء جاوا اسکریپت همیشه رشته هستند، حتی اگر به صراحت آنها را نقل قول نکنید. بنابراین، age
مثل این هست که "age"
.
چرا کلیدها/ویژگی های شی جاوا اسکریپت را مرتب کنیم؟
ممکن است شرایطی وجود داشته باشد که شما نیاز به مرتب سازی کلیدهای یک شی جاوا اسکریپت داشته باشید. به عنوان مثال، ممکن است با یک شی با تعداد زیادی کلید سروکار داشته باشید و باید آنها را در قالبی مرتب و قابل خواندن ارائه دهید. یا شاید شما در حال نوشتن تست های واحد هستید و برای اینکه تست های خود را قابل پیش بینی تر کنید به ترتیب ثابتی از کلیدها نیاز دارید. لزوماً عمل خوبی در نظر گرفته نمی شود، اما هنوز دلایلی وجود دارد که بسیاری از برنامه نویسان می خواهند آن را انجام دهند.
روش مرتب سازی کلیدها/خواص شی
جاوا اسکریپت یک روش داخلی برای مرتب کردن کلیدهای شی ارائه نمی دهد. اما نگران نباشید، ما می توانیم با کمی خلاقیت به این مهم برسیم.
در اینجا تابعی وجود دارد که یک شی را می گیرد و یک شی جدید را با کلیدهای مرتب شده برمی گرداند:
function sortObjectKeys(obj) {
return Object.keys(obj).sort().reduce((result, key) => {
console.log(key);
result(key) = obj(key);
return result;
}, {});
}
let student = {
name: "John Doe",
age: 20,
grade: "A"
};
console.log(sortObjectKeys(student));
وقتی این کد را اجرا می کنید، دریافت خواهید کرد:
{
age: 20,
grade: "A",
name: "John Doe"
}
همانطور که می بینید، کلیدها به ترتیب صعودی مرتب شده اند.
این کار بدین صورت است که ابتدا آرایه ای از کلیدهای شی را با استفاده از آن بدست می آوریم Object.keys()
، سپس با استفاده از آن آرایه را مرتب کنید Array.prototype.sort()
. سپس استفاده می کند Array.prototype.reduce()
برای ساختن یک شی جدید با کلیدهای مرتب شده. سپس کلیدها به ترتیبی که در شی جدید وارد شده اند نشان داده می شوند.
ES6 مرتبسازی کلیدها/ویژگیهای شی
عموماً اعتقاد بر این است که ویژگیهای شیء هیچ ترتیبی ندارند، و بنابراین نمیتوانید به ترتیبی که به نظر میرسد ویژگیها دارند تکیه کنید. در حالی که این درست است، همانطور که در بالا نشان دادیم، سفارش دادن است ممکن است، تا حدی
مطابق با کاوش ES6، خواص هستند به ترتیب زیر برگشت داده شد:
- شاخص های آرایه به ترتیب
- کلیدهای رشته ای به ترتیبی که به ویژگی اضافه شده اند
- نمادها به ترتیبی که به دارایی اضافه شدند
اکثر (و نه همه!) اشیا فقط از کلیدهای رشته ای استفاده می کنند. با این حال، اگر از شاخصها یا نمادهای آرایه نیز بهعنوان ویژگی استفاده کنید، دیگر نمیتوانید روی آنها به ترتیبی که به شی اضافه شدهاند، تکرار کنید.
نتیجه
این بایت روش مرتبسازی کلیدها/ویژگیهای شی جاوا اسکریپت را توضیح میدهد. ما آموختیم که اگرچه کلیدهای شی ذاتاً مرتب نیستند، اما وجود دارد است برخی از آنها را سفارش دهید که می توانید از آنها استفاده کنید. درک این تفاوت های ظریف جاوا اسکریپت می تواند به شما کمک کند نه تنها اثربخشی کد خود را بهبود بخشید، بلکه کیفیت و استحکام آن را نیز بهبود بخشید.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1402-12-27 12:01:04