آنچه که در این مقاله خواهید خواند:
سوال
من یک آرایه دارم:
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]
من نمی توانم ساختار آرایه را تغییر دهم. به من یک شناسه 45 داده می شود و می خواهم ‘bar’برای آن شی در آرایه به دست بیاورم.
چگونه این کار را در جاوا اسکریپت یا با استفاده از جی کوئری انجام دهم؟
پاسخ
از روش find() استفاده کنید:
myArray.find(x => x.id === '45').foo;
از MDN
این روش ()find اولین مقدار را در آرایه برمی گرداند، اگر عنصری در آرایه تابع تست ارائه شده را برآورده کند. در غیر این صورت undefined بازگردانده می شود.
اگر می خواهید شاخص آن را پیدا کنید، از ()findIndex استفاده کنید:
myArray.findIndex(x => x.id === '45');
از MDN
این روش ()findIndex شاخص اولین عنصر آرایه را که تابع تست ارائه شده را برآورده می کند، برمی گرداند. در غیر این صورت -1 برگردانده می شود.
اگر می خواهید آرایه ای از عناصر منطبق را بدست آورید، به جای آن از روش ()filter استفاده کنید:
myArray.filter(x => x.id === '45');
این آرایه ای از اشیا را برمی گرداند. اگر می خواهید آرایه ای از ویژگی های foo را بدست آورید، می توانید این کار را با روش map() زیر انجام دهید:
myArray.filter(x => x.id === '45').map(x => x.foo);
نکته جانبی: متد هایی مانند ()find یا ()filter، و توابع فلش توسط مرورگر های قدیمی (مانند IE) پشتیبانی نمی شوند، بنابراین اگر می خواهید از این مرورگر ها پشتیبانی کنید، باید کد خود را با استفاده از Babel (با polyfill ) ترجمه کنید.
شما می توانید برای یادگیری زبان جاوا اسکریپت از مسیر کارآموزی فرانت اند استفاده کنید.
پاسخها