filter() और includes() का संयोजन ऐरे से अवांछित मानों को हटाने या विशिष्ट मानों को रखने का साफ तरीका है।
बुनियादी उदाहरण: विशिष्ट नामों को बाहर करें
const names = ['John', 'David', 'Mike', 'Sam', 'Carol', 'Bob'];
// बाहर करने योग्य नाम
const exclude = ['David', 'Mike', 'Sam', 'Carol'];
// filter + includes से फिल्टर करें
const filtered = names.filter(name => !exclude.includes(name));
console.log("मूल:", names);
console.log("फिल्टर्ड:", filtered);
// फिल्टर्ड: [ 'John', 'Bob' ]
विपरीत: केवल विशिष्ट नाम रखें
const keepOnly = ['John', 'Bob'];
const filtered = names.filter(name => keepOnly.includes(name));
console.log(filtered); // [ 'John', 'Bob' ]
ऑब्जेक्ट्स की ऐरे फिल्टर करें
const users = [
{ id: 1, name: 'John', role: 'admin' },
{ id: 2, name: 'David', role: 'user' },
{ id: 3, name: 'Mike', role: 'user' },
{ id: 4, name: 'Bob', role: 'admin' }
];
// केवल एडमिन रखें
const admins = users.filter(user => ['admin'].includes(user.role));
// या
const admins = users.filter(user => user.role === 'admin');
console.log(admins);
बहु-शर्त फिल्टरिंग
const products = [
{ name: 'Laptop', category: 'electronics', price: 50000 },
{ name: 'Shirt', category: 'clothing', price: 500 },
{ name: 'Phone', category: 'electronics', price: 30000 },
{ name: 'Book', category: 'education', price: 300 }
];
// इलेक्ट्रॉनिक्स AND 10000 से कम
const affordableElectronics = products.filter(p =>
p.category === 'electronics' && p.price < 10000
);
// कपड़े OR शिक्षा
const clothingOrEducation = products.filter(p =>
['clothing', 'education'].includes(p.category)
);
प्रदर्शन टिप: Set उपयोग करें
// बड़े बहिष्करण सूची के लिए Set तेज़ है
const excludeSet = new Set(['David', 'Mike', 'Sam', 'Carol', ...manyMore]);
const filtered = names.filter(name => !excludeSet.has(name));
// O(1) लुकअप बनाम O(n) includes() के लिए
चलाने का तरीका
node filter-includes.js
आउटपुट
मूल: [ 'John', 'David', 'Mike', 'Sam', 'Carol', 'Bob' ]
फिल्टर्ड: [ 'John', 'Bob' ]
सारांश
| स्थिति | कोड पैटर्न |
|---|---|
| बहिष्कृत करें | .filter(x => !exclude.includes(x)) |
| केवल रखें | .filter(x => keep.includes(x)) |
| ऑब्जेक्ट प्रॉपर्टी | .filter(obj => allowed.includes(obj.prop)) |
| बड़ी सूची | const set = new Set(list); .filter(x => !set.has(x)) |