ऑब्जेक्ट्स की एक सरणी और एक फ़िल्टर ऑब्जेक्ट को देखते हुए, लक्ष्य फ़िल्टर करना है और फ़िल्टर में निर्दिष्ट कई शर्तों के आधार पर सरणी को सरल बनाएं। हालाँकि, एक विशिष्ट समस्या तब उत्पन्न होती है जब फ़िल्टर में कई गुण होते हैं।
वर परिणाम = [];
(फ़िल्टर में var प्रोप) के लिए {
अगर (filter.hasOwnProperty(prop)) {
// सरणी पर पुनरावृति करें
के लिए (var i = 0; i उदाहरण उपयोग var उपयोगकर्ता = [{
नाम: 'जॉन',
ईमेल: '[email protected]',
उम्र: 25,
पता: 'यूएसए'
}, {
नाम: 'टॉम',
ईमेल: '[email protected]',
उम्र: 35,
पता: 'इंग्लैंड'
}, {
नाम: 'मार्क',
ईमेल: '[email protected]',
उम्र: 28,
पता: 'इंग्लैंड'
}];
वर फ़िल्टर = {
पता: 'इंग्लैंड',
नाम: 'मार्क'
};
var फ़िल्टर किए गए उपयोगकर्ता = फ़िल्टर उपयोगकर्ता (उपयोगकर्ता, फ़िल्टर);
कंसोल.लॉग(फ़िल्टर किए गए उपयोगकर्ता); // आउटपुट: [{नाम: 'मार्क', ईमेल: '[email protected]', उम्र: 28, पता: 'इंग्लैंड' }]प्रस्तावित समाधान में, समस्या तब होती है जब फ़िल्टर में एकाधिक गुण होते हैं। विशेष रूप से, दूसरे पुनरावृत्ति के दौरान, उपयोगकर्ताओं [i] [प्रोप] और फ़िल्टर [प्रोप] के बीच तुलना गलत है। इसे ठीक करने के लिए, हम कोड को निम्नलिखित में संशोधित कर सकते हैं:
फ़ंक्शन फ़िल्टरउपयोगकर्ता(उपयोगकर्ता, फ़िल्टर) {
वर परिणाम = [];
(फ़िल्टर में var प्रोप) के लिए {
अगर (filter.hasOwnProperty(prop)) {
// सरणी पर फ़िल्टर लागू करें
उपयोगकर्ता = उपयोगकर्ता.फ़िल्टर((उपयोगकर्ता) => उपयोगकर्ता[प्रोप] === फ़िल्टर[प्रोप]);
}
}
वापसी परिणाम;
}function filterUsers(users, filter) {
var result = [];
for (var prop in filter) {
if (filter.hasOwnProperty(prop)) {
// Iterate over the array
for (var i = 0; i
function filterUsers(users, filter) {
var result = [];
for (var prop in filter) {
if (filter.hasOwnProperty(prop)) {
// Apply filter on the array
users = users.filter((user) => user[prop] === filter[prop]);
}
}
return result;
}
यह समाधान उस समस्या का समाधान करता है जहां एकाधिक फ़िल्टर स्थितियां नहीं थीं सही ढंग से लागू किया जा रहा है, यह सुनिश्चित करते हुए कि परिणामी फ़िल्टर की गई सरणी निर्दिष्ट मानदंडों को सटीक रूप से प्रतिबिंबित करती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3