Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में ऐरे से 0, undefined और खाली मान कैसे हटाएं?

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()
  1. - जावास्क्रिप्ट ऐरे से वैल्यू द्वारा आइटम कैसे हटाएं?

    जावास्क्रिप्ट में ऐरे से आइटम हटाने के लिए, पहले आइटम प्राप्त करें और फिर splice() मेथड का उपयोग करके इसे हटाएं। आप निम्नलिखित कोड चलाकर देख सकते हैं:उदाहरण<html>        <body>                     <script>  

  1. - जावास्क्रिप्ट में सरणी से फाल्सी वैल्यूज कैसे हटाएं?

    जावास्क्रिप्ट लाइब्रेरी underscore.js ने सरणी में सभी false मानों को हटाने के लिए _.compact() मेथड प्रदान किया है। सरणी में फाल्सी मान NaN, undefined, खाली स्ट्रिंग, false और 0 हैं। यह फाल्सी मानों से मुक्त एक नई सरणी आउटपुट के रूप में लौटाता है। सिंटैक्स _.compact( array ); यह एक सरणी को पैरामीटर

  1. JavaScript array.values() मेथड JavaScript array.values() मेथड

    JavaScript array.values() एक इटरेटर ऑब्जेक्ट लौटाता है जिसमें दिए गए ऐरे के सभी मान होते हैं। उदाहरण { fillEle.innerHTML = ; for (let x of arr.values()) { fillEle.innerHTML += x + </br>; } }); </script> </body> </html> आउटपुट यहां क