()Array.of در جاوا اسکریپت


در ES5 زمانی که شما یک عدد(number) به سازنده آرایه( Array constructor ) پاس می دادید،جاوا اسکریپت یک آرایه ایجاد می کرد که length آن برابر با عدد پاس داده شده بود.
1 2 3 |
let numbers = new Array(2); console.log(numbers.length); // 2 console.log(numbers[]); // undefined |
با این حال، زمانی که شما یک value غیر عددی به سازنده آرایه( Array constructor ) پاس می دادیدجاوا اسکریپت یک آرایه ایجاد می کرد که شامل یک element با آن value بود.برای مثال :
1 2 3 |
numbers = new Array("2"); console.log(numbers.length); // 1 console.log(numbers[]); // "2" |
این رفتار گاهی گیج کننده و مستعد خطا بود، زیرا ممکن است نوع داده ای که به سازنده آرایه( Array constructor ) پاس می دهید را ندانید.
ES6 با معرفی ()Array.of این مشکل را حل کرد.
()Array.of مشابه با Array
constructor است به جز اینکه ()Array.of همیشه یک آرایه شامل value های پاس داده شده بدون در نظر گرفتن type آنها،ایجاد می کند.
کد زیر syntax مربوط به ()Array.of را نشان می دهد.
1 |
Array.of(element0[, element1[, ...[, elementN]]]) |
مثال هایی از ()Array.of در جاوا اسکریپت
به مثال زیر توجه کنید:
1 2 3 |
let numbers = Array.of(3); console.log(numbers.length); // 1 console.log(numbers[]); // 3 |
در این مثال ما عدد 3 را ()Array.of پاس دادیم.()Array.of یک آرایه شامل عدد 3 را ایجاد می کند.
به مثال زیر توجه کنید:
1 2 3 |
let chars = Array.of('A', 'B', 'C'); console.log(chars.length); // 3 console.log(chars); // ['A','B','C'] |
در این مثال ما یک آرایه با 3 رشته(string) پاس داده شده 'A'
, 'B'
و 'C'
با استفاده از ()Array.of ایجاد می کنیم.اندازه آرایه برابر با 3 است.
اگر جاوا اسکریپت را در محیطی اجرا می کنید که از ()Array.of پشتیبانی نمی کند ، می توانید از polyfill زیر استفاده کنید:
1 2 3 4 5 |
if (!Array.of) { Array.of = function() { return Array.prototype.slice.call(arguments); }; } |
دیدگاهتان را بنویسید