از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش تبدیل آرایه به شی با جاوا اسکریپت
سرفصلهای مطلب
معرفی
ساختارهای داده در جاوا اسکریپت اغلب بسیار قابل ترکیب هستند. این بدان معنی است که شما می توانید یک ساختار داده را بگیرید و آن را به یک ساختار داده متفاوت نسبتاً آسان تبدیل کنید. این زمانی مفید است که باید داده ها را به قالبی تبدیل کنید که برای برنامه شما مفیدتر باشد.
در این مقاله، روش تبدیل یک آرایه به یک شی با جاوا اسکریپت را بررسی خواهیم کرد.
چرا آرایه ها را به آبجکت تبدیل کنیم؟
اشیاء در جاوا اسکریپت روشی ساختاریافته برای ذخیره داده ها با جفت های کلید-مقدار ارائه می کنند. این ساختار زمانی میتواند مفید باشد که بخواهیم با استفاده از کلیدهای خاص به دادهها دسترسی داشته باشیم، نه اینکه مانند آرایهها به شاخصها تکیه کنیم. به عنوان مثال، اگر لیستی از کاربران با ویژگی های مربوطه داشته باشیم، دسترسی به سن کاربر با user.age
از با user(3)
.
با استفاده از Object.assign() روش
یکی از واضحترین راهها برای تبدیل یک آرایه به یک شی، استفاده از عبارت است Object.assign()
روش. این روش تمام خصوصیات خود را از یک یا چند شی منبع به یک شی هدف کپی می کند و شی مورد نظر را برمی گرداند.
در اینجا یک مثال ساده آورده شده است:
let array = ('apple', 'banana', 'cherry');
let object = Object.assign({}, array);
console.log(object);
خروجی خواهد بود:
{ '0': 'apple', '1': 'banana', '2': 'cherry' }
همانطور که می بینید، Object.assign()
متد آرایه ما را گرفت و آن را به یک شی تبدیل کرد، جایی که شاخصهای آرایه به کلیدهای شی تبدیل شدند.
توجه داشته باشید: این Object.assign()
متد خصوصیات شی ورودی را کپی عمیق نمی کند. این به این معنی است که اگر آرایه شما حاوی اشیاء است و بعد از استفاده آنها را تغییر می دهید Object.assign()
، تغییرات در شی جدید نیز منعکس خواهد شد.
با استفاده از Array.reduce() روش
روش دیگر برای تبدیل یک آرایه به یک شیء است Array.reduce()
روش. این یک تابع را در برابر یک انباشته و هر عنصر در آرایه (از چپ به راست) اعمال می کند کاهش دادن آن را به یک مقدار خروجی واحد می رساند.
در اینجا روش استفاده از آن آورده شده است:
let array = ('apple', 'banana', 'cherry');
let object = array.reduce((obj, item, index) => {
obj(index) = item;
return obj;
}, {});
console.log(object);
خروجی مانند مثال قبلی خواهد بود:
{ '0': 'apple', '1': 'banana', '2': 'cherry' }
در این مثال، ما از Array.reduce()
برای ایجاد یک شی جدید (obj
)، و برای هر آیتم در آرایه، یک ویژگی جدید به آن اضافه می کنیم obj
با یک کلید شاخص فعلی و مقدار مورد فعلی.
مزیت از Array.reduce()
روش این است که به ما انعطاف پذیری بیشتری می دهد. ما به راحتی می توانیم کد را تغییر دهیم تا از آیتم های آرایه به عنوان کلید و شاخص ها به عنوان مقادیر استفاده کنیم یا داده ها را به روش های دیگر تبدیل کنیم.
با استفاده از اپراتور Spread
یکی از زیباترین و مدرن ترین راه ها (به عنوان مثال ES6) برای تبدیل آرایه به یک شی در جاوا اسکریپت استفاده از عملگر spread است....
). عملگر spread که در ES6 معرفی شد، به ما امکان می دهد عناصر تکرارپذیر مانند آرایه ها را به عناصر جداگانه گسترش دهیم.
در اینجا روش استفاده از عملگر spread برای تبدیل یک آرایه به یک شی به شرح زیر است:
const array = ('apple', 'banana', 'cherry');
const object = { ...array };
console.log(object);
خروجی کد بالا به صورت زیر خواهد بود:
{ '0': 'apple', '1': 'banana', '2': 'cherry' }
همانطور که می بینید، شاخص های آرایه به کلیدهای شی تبدیل می شوند و عناصر آرایه به مقادیر مربوطه تبدیل می شوند.
تبدیل آرایه های چند بعدی
برخورد با آرایه های چند بعدی می تواند کمی گیج کننده باشد، به خصوص برای برنامه نویسان تازه کار. خوشبختانه جاوا اسکریپت ابزارهای خوبی برای مدیریت آنها در اختیار ما قرار می دهد. فرض کنید یک آرایه دو بعدی داریم که در آن هر زیر آرایه حاوی یک جفت مقدار است. ما می توانیم این را به یک شی تبدیل کنیم که عنصر اول هر جفت کلید و عنصر دوم مقدار باشد:
const array = (('name', 'John'), ('age', 30), ('city', 'New York'));
const object = Object.fromEntries(array);
console.log(object);
سپس خروجی به صورت زیر خواهد بود:
{ name: 'John', age: 30, city: 'New York' }
این Object.fromEntries()
متد لیستی از جفتهای کلید-مقدار را به یک شی تبدیل میکند که برای مورد استفاده ما عالی است. اکنون دسترسی به داده های آرایه چند بعدی بسیار آسان تر است.
تبدیل آرایه ها با شاخص های غیر عددی
توجه داشته باشید: آرایه های جاوا اسکریپت از نظر فنی اشیایی هستند که در آن شاخص ها ویژگی هایی هستند که می توانند رشته ای باشند. با این حال، وقتی در مورد آرایه ها به معنای متعارف صحبت می کنیم، معمولاً آنها را به عنوان لیست هایی با شاخص های عددی در نظر می گیریم.
بنابراین، چگونه یک آرایه با شاخص های غیر عددی را به یک شی تبدیل کنیم؟ خوب، در جاوا اسکریپت، از قبل یک شی است! اما اگر بخواهیم آن را به یک فرمت شی استانداردتر تبدیل کنیم، می توانیم از آن استفاده کنیم Object.assign()
روش.
موارد زیر را در نظر بگیرید:
const array = ();
array('name') = 'John';
array('age') = 30;
array('city') = 'New York';
const object = Object.assign({}, array);
console.log(object);
خروجی خواهد بود:
{ name: 'John', age: 30, city: 'New York' }
در صورتی که کنجکاو هستید، چه کار می کند array
متغیر پس از تخصیص مقادیر به شاخص های غیر عددی به نظر می رسد؟ این می تواند بسیار غیر منطقی باشد، اما زمانی که بتوانید سر خود را در اطراف آرایه ها بپیچید در واقع اشیاء بودن، می تواند منطقی تر باشد.
const array = ();
array('name') = 'John';
array('age') = 30;
array('city') = 'New York';
console.log(object);
( name: 'John', age: 30, city: 'New York' )
نتیجه
در این بایت، روشهای مختلفی برای تبدیل یک آرایه به یک شی در جاوا اسکریپت، از جمله استفاده از Object.assign()
، Array.reduce()
و اپراتور spread. همچنین روش برخورد با آرایه های چند بعدی و مدیریت آرایه ها با شاخص های غیر عددی را نشان دادیم.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1402-12-28 02:17:05