filter() मेथड से फाल्सी मान (0, false, "", null, undefined, NaN) हटाएं, या splice() से म्यूटेट करें।
विधि 1: filter() - नई ऐरे बनाएं (अनुशंसित)
const allValues = [10, false, 100, 150, '', undefined, 450, null, 0, NaN];
// सभी फाल्सी मान हटाएं (0, false, "", null, undefined, NaN)
const filtered = allValues.filter(Boolean);
// या स्पष्ट रूप से
const filtered2 = allValues.filter(v => v !== null && v !== undefined && v !== '');
console.log("मूल:", allValues);
console.log("फिल्टर्ड (filter(Boolean)):", filtered);
// [10, 100, 150, 450] - ध्यान: 0 और false भी हट गए!
console.log("फिल्टर्ड (स्पष्ट):", filtered2);
// [10, false, 100, 150, 450, 0] - केवल null, undefined, '' हटे
विधि 2: splice() - मूल ऐरे म्यूटेट करें
const arr = [10, false, 100, 150, '', undefined, 450, null];
// पीछे से लूप करें ताकि इंडेक्स शिफ्ट न हो
for (let i = arr.length - 1; i >= 0; i--) {
if (arr[i] === null || arr[i] === undefined || arr[i] === '') {
arr.splice(i, 1);
}
}
console.log("splice के बाद:", arr);
// [10, false, 100, 150, 450] - 0 बरकरार!
विधि 3: विशिष्ट मान ही हटाएं
const removeSpecific = (arr, ...valuesToRemove) => {
const removeSet = new Set(valuesToRemove);
return arr.filter(v => !removeSet.has(v));
};
const data = [10, false, 100, 150, '', undefined, 450, null, 0, NaN];
console.log(removeSpecific(data, null, undefined, ''));
// [10, false, 100, 150, 450, 0, NaN] - केवल null, undefined, ''
console.log(removeSpecific(data, 0, false, '', null, undefined, NaN));
// [10, 100, 150, 450] - सभी फाल्सी
चलाने का तरीका
node remove-falsy.js
आउटपुट
मूल: [ 10, false, 100, 150, '', undefined, 450, null ]
फिल्टर्ड: [ 10, 100, 150, 450 ]
तुलना तालिका
| मान | filter(Boolean) | filter(v => v != null) | splice (null/undef/'') |
|---|---|---|---|
10 | ✅ रखें | ✅ रखें | ✅ रखें |
false | ❌ हटाएं | ✅ रखें | ✅ रखें |
0 | ❌ हटाएं | ✅ रखें | ✅ रखें |
"" | ❌ हटाएं | ❌ हटाएं | ❌ हटाएं |
null | ❌ हटाएं | ❌ हटाएं | ❌ हटाएं |
undefined | ❌ हटाएं | ❌ हटाएं | ❌ हटाएं |
NaN | ❌ हटाएं | ✅ रखें | ✅ रखें |
सिफारिश
- केवल
null,undefined,''हटाने के लिए:filter(v => v != null && v !== '') - सभी फाल्सी हटाने के लिए:
filter(Boolean) - मूल ऐरे म्यूटेट करना हो: पीछे से
splice()