من یکی از طرفدارهای جاوااسکریپت هستم،(جاوااسکریپت نه برای تکان دادن یک المنت در صفحه، بلکه برای برنامه نویسی و ایجاد ابزار های شاهکار) اگر با آرایه ها کار میکنید ممکن است بخواهید مقادیر خاصی را از آن حذف کنید،از گزینه های خوب برای حذف کردن المنت های `null` و `NaN` را میشود نام برد. خب همه ما میدانیم که کاری است بس ساده و نیاز به توصیف ندارد، تنها کافی است با یک حلقه مؤلفه های درون آرایه را بررسی کنیم، قبلا نیز درباره حذف یک المنت از یک کلاس یا یک آرایه صحبت کرده بودیم، ولی اینجا بحث در مورد پاکسازی کلی آرایه است، نه فقط حذف یک المنت. قرار بر این است که این کار را به روش جاوااسکریپت انجام دهیم نه بصورت یک روش کلی که در تمامی زبان ها پاسخ گو است. یک از راههایی که من علاقه خاصی به آن دارم تغییر پروتوتایپ است، تابعی به پروتوتایپ آرایه اضافه کنیم:

``` Array.prototype.clean = function(deleteValue) { for (var i = 0; i < this.length; i++) { if ( (deleteValue !== undefined && this[i] == deleteValue) || (deleteValue === undefined && !this[i]) ) { this.splice(i, 1); i--; } } return this; }; // how to call var test = [1,2,,3,,3,,,,,,4,,4,,5,,6,,,,]; test.clean(); // or test.clean(2);
<p>تابع فوق در صورتی که با آرگمان ورودی فراخوانی شود، مقادیری از آرایه را که با مقدار ارسالی برابر باشند حذف میکند و اگر بدون آرگمان فراخوانی شود، مقادیر ` undefined`، `null`،`0`،`false`، `NaN`و `''` را از آرایه حذف میکند.
روش دیگر جالب استفاده از تابع `filter` است.</p>

var test = [1,2,,3,,3,,,,,,4,,4,,5,,6,,,,];
test.filter(function(n){ return n != undefined});

<p>اگر اعضای آرایه همه تک حرفی یا تک رقمی هستند، ترفند زیر نیز پاسخگو خواهد بود.</p>

['','1','2',3,,'4',,undefined,,,'5'].join('').split('');
// output: ["1","2","3","4","5"]