راه های مختلفی برای حذف مقادیر falsy از آرایه وجود دارد، برای مثال با استفاده از for، for...in، forEach , filter می توان این عملیات حذف را انجام داد. اما ساده ترین راه که درگیر پیچیدگی های الگوریتم پیاده سازی نشویم کدام است؟
ساختار الگوریتم:
مقادیر مورد تست:
بهترین راه حل:
بهترین شیوه برای حذف مقادیر falsy استفاده از متد filter هست. این متد یک تابع به عنوان ورودی گرفته و آن را برای هر عنصر آرایه فراخوانی می کند. در تابع ارسالی به این متد می توانیم شرط خود برای بررسی مقدار را درج کرده و در نهایت مقدار true/false برگردانیم که در صورت true بودن عنصر جاری به آرایه جدید اضافه می شود.
مثال (دمو آنلاین):
// remove falsy elements const removeFalsyElements = items => items.filter(element => !!element) console.log(removeFalsyElements([1, null, 2, 4, '', undefined, 6])); console.log(removeFalsyElements(['Hello', '', null, 0, 'world', undefined, NaN, false])); console.log(removeFalsyElements([0, NaN, null, undefined])); console.log(removeFalsyElements(['a', 'b', 'c'])); console.log(removeFalsyElements(['a', 1, null, 'b', 0, 2, 'c', false]));
نکته: برای تبدیل مقادیر مختلف به مقدار Boolean می توانیم از دو روش استفاده کنیم:
۱. استفاده از تابع Boolean(): با ارسال مقدار مورد نظر به این تابع با توجه به تابع ارسالی مقدار true/false برگردانده می شود:
Boolean(value);
۲. استفاده از عملگر( ! ): در صورتی که قبل از مقدار مورد نظر دو علامت !! بگذارید تبدیل به مقدار boolean می شود.
!!value<br/>