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

JavaScript में नेस्टेड ऐरे के अंदर array.includes गलत क्यों लौटाता है जबकि खोजा गया नाम ऐरे में है


यह एक प्रसिद्ध दुविधा है कि जब हम नेस्टेड ऐरे यानी मल्टीडाइमेंशनल ऐरे के अंदर includes() का उपयोग करते हैं, तो यह काम नहीं करता। एक Array.prototype.flat() फ़ंक्शन मौजूद है जो ऐरे को फ्लैट करता है और फिर इसके माध्यम से खोजता है लेकिन इसका ब्राउज़र सपोर्ट अभी बहुत अच्छा नहीं है।

तो हमारा काम एक includesMultiDimension() फ़ंक्शन बनाना है जो एक ऐरे और एक स्ट्रिंग लेता है और उस स्ट्रिंग की ऐरे में उपस्थिति/अनुपस्थिति के आधार पर बूलियन लौटाता है।

इस समस्या के कई समाधान मौजूद हैं, उनमें से अधिकांश में रिकर्सन, भारी ऐरे फ़ंक्शन, लूप और क्या नहीं शामिल हैं।

हम यहां जिस पर चर्चा करने जा रहे हैं, वह नेस्टेड ऐरे में स्ट्रिंग की उपस्थिति/अनुपस्थिति की जांच करने का अब तक का सबसे आसान तरीका है।

इसके लिए कोड है:

उदाहरण

const names = ['Ram', 'Shyam', 'Laxman', [
  'Jay', 'Jessica', [
    'Vikram'
  ]
]];
const includesMultiDimension = (arr, str) => JSON.stringify(arr).includes(str);
console.log(includesMultiDimension(names, 'Vikram'));

यह वन-लाइन समाधान ऐरे को JSON स्ट्रिंग में बदलने को शामिल करता है ताकि हम बस इस पर includes लागू कर सकें।

आउटपुट

कंसोल आउटपुट होगा:

True

  1. JavaScript Array.includes(): एरे में तत्व खोजें JavaScript Array.includes(): एरे में तत्व खोजें

    Array.includes() मेथड जांचता है कि कोई एरे दिए गए तत्व को शामिल करता है या नहीं, और true या false लौटाता है। यह indexOf() !== -1 से अधिक पठनीय है। उदाहरण { fillEle.innerHTML = शेर एरे में मौजूद है: + arr.includes(शेर); }); </script> </body> </html> आउटपुट क्लिक क

  1. JavaScript में Array.prototype.includes() मेथड JavaScript में Array.prototype.includes() मेथड

    JavaScript Array.prototype.includes() मेथड का उपयोग यह जांचने के लिए किया जाता है कि कोई ऐरे दिए गए एलिमेंट को शामिल करता है या नहीं। उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="w

  1. जावास्क्रिप्ट में ऑब्जेक्ट्स के ऐरे की प्रॉपर्टी नाम बदलना जावास्क्रिप्ट में ऑब्जेक्ट्स के ऐरे की प्रॉपर्टी नाम बदलना

    जावास्क्रिप्ट में ऑब्जेक्ट्स के ऐरे की प्रॉपर्टी नाम बदलने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style>