JavaScript-এ ফলসি (falsy) মানগুলো (`0`, `false`, `''`, `null`, `undefined`, `NaN`) অ্যারে থেকে রিমুভ করার জন্য `splice()` বা `filter()` ব্যবহার করা হয়।
সplice() পদ্ধতি (মিউটেট করে)
var values = [10, false, 100, 150, '', undefined, 450, null];
for (let i = 0; i < values.length; i++) {
if (!values[i]) { // falsy চেক
values.splice(i, 1);
i--; // ইনডেক্স ঠিক রাখতে
}
}
console.log(values); // [10, 100, 150, 450]
চলানোর পদ্ধতি
- কোডটি
removeFalsy.jsনামে সংরক্ষণ করুন। - টার্মিনালে চালান:
node removeFalsy.js
আউটপুট
Actual Array= [ 10, false, 100, 150, '', undefined, 450, null ]
After removing: [ 10, 100, 150, 450 ]
⚠️ সমস্যা: 0 ও false ও রিমুভ হয়ে যায়
উপরের কোড `0` এবং `false` কেও রিমুভ করে, যা কাঙ্খিত নাও হতে পারে।
ফিল্টার পদ্ধতি (নন-মিউটেটিং, নির্বাচনাত্মক)
const arr = [10, false, 100, 150, '', undefined, 450, null, 0, NaN];
// শুধু null, undefined, '' রিমুভ (0, false রাখো)
const clean1 = arr.filter(v => v !== null && v !== undefined && v !== '');
// [10, false, 100, 150, 450, 0]
// শুধু "খালি" মানের মানে null/undefined/''
const clean2 = arr.filter(v => v != null && v !== ''); // loose equality
// [10, false, 100, 150, 450, 0]
// সব falsy রিমুভ (0, false, NaN ও চলে যাবে)
const clean3 = arr.filter(Boolean);
// [10, 100, 150, 450]
স্পেশাল কেস: NaN হ্যান্ডলিং
[1, NaN, 2].filter(v => v === v); // [1, 2] (NaN !== NaN)
[1, NaN, 2].filter(Number.isFinite); // [1, 2]
সারাংশ
| চায় | কোড |
|---|---|
| শুধু null/undefined/'' | `arr.filter(v => v != null && v !== '')` |
| সব falsy (0, false, NaN) | `arr.filter(Boolean)` |
| শুধু NaN | `arr.filter(v => v === v)` |
| মূল অ্যারে মিউটেট | for loop + splice (i--) |