includes() से जांचें कि ऐरे में मान मौजूद है या नहीं, और splice() से उसे हटाएं। एक साथ कई मान हटाने के लिए फंक्शन बनाएं।
बुनियादी अवधारणा
const arr = [1, 2, 3, 4, 5];
// जांचें कि 3 मौजूद है
console.log(arr.includes(3)); // true
// इंडेक्स ढूंढकर हटाएं
const index = arr.indexOf(3);
if (index !== -1) {
arr.splice(index, 1); // 1 एलिमेंट हटाएं
}
console.log(arr); // [1, 2, 4, 5]
पुन: प्रयोज्य फंक्शन: एकाधिक मान हटाएं
function removeElements(array, ...valuesToRemove) {
// रिमूव करने योग्य मानों का सेट बनाएं (तेज़ लुकअप)
const removeSet = new Set(valuesToRemove);
// पीछे से लूप करें ताकि इंडेक्स शिफ्ट न हो
for (let i = array.length - 1; i >= 0; i--) {
if (removeSet.has(array[i])) {
array.splice(i, 1);
}
}
return array;
}
// उपयोग
const numbers = [80, 90, 56, 34, 79, 90, 34];
console.log("पहले:", numbers);
removeElements(numbers, 90, 34, 79);
console.log("बाद में:", numbers);
// [80, 56]
वैकल्पिक: नई ऐरे लौटाएं (मूल अपरिवर्तित)
function removeElementsImmutable(array, ...valuesToRemove) {
const removeSet = new Set(valuesToRemove);
return array.filter(item => !removeSet.has(item));
}
const original = [80, 90, 56, 34, 79];
const filtered = removeElementsImmutable(original, 90, 34, 79);
console.log("मूल:", original); // [80, 90, 56, 34, 79] - अपरिवर्तित
console.log("फिल्टर्ड:", filtered); // [80, 56]
ES6+ मॉडर्न दृष्टिकोण
// filter() के साथ - सबसे साफ
const valuesToRemove = new Set([90, 34, 79]);
const result = original.filter(x => !valuesToRemove.has(x));
// या एक लाइन में
const result = original.filter(x => ![90, 34, 79].includes(x));
चलाने का तरीका
node remove-elements.js
आउटपुट
पहले: [ 80, 90, 56, 34, 79, 90, 34 ]
बाद में: [ 80, 56 ]
महत्वपूर्ण नोट्स
splice()मूल ऐरे को मॉडिफाई करता है (म्यूटेट करता है)- पीछे से लूप करने पर इंडेक्स शिफ्ट की समस्या नहीं होती
Setका उपयोगincludes()से तेज़ है (O(1) बनाम O(n))filter()नई ऐरे बनाता है, मूल को नहीं बदलता