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

JavaScript में एरे को डीप फ्लैट कैसे करें?


एरे फ्लैट करना (Flattening)

एरे को फ्लैट करना का अर्थ है प्रदान किए गए एरे के अंदर मौजूद नेस्टेड एरे के समूह को मर्ज करना।

एरे फ्लैट करने के दो तरीके

1) concat.apply()

निम्न उदाहरण में कुछ नेस्टेड एरे हैं जिनमें एलिमेंट्स 3,4,5 और 6 हैं। concat() मेथड का उपयोग करके उन्हें फ्लैट करने के बाद हमें आउटपुट मिलता है: 1,2,3,4,5,6,9।

<html>
<body>
<script>
  var arrays = [1, 2, [3, 4, [5, 6]], 9];
  var merged = [].concat.apply([], arrays);
  document.write(merged);  // 1,2,3,4,[5,6],9 - केवल एक लेवल फ्लैट होता है!
</script>
</body>
</html>

आउटपुट

1,2,3,4,5,6,9

नोट: concat.apply केवल **एक लेवल** फ्लैट करता है। गहरे नेस्टेड एरे के लिए यह काम नहीं करता।

2) array.flat() (ES2019) - अनुशंसित

निम्न उदाहरण में नेस्टेड एलिमेंट्स जैसे 2,3,4,5,6,9 हैं। array.flat() मेथड का उपयोग करके उन्हें फ्लैट करने के बाद हमें आउटपुट मिलता है: 1,2,2,3,4,5,6,9।

<html>
<body>
<script>
  const arrays = [1, 2, [2, 3, [4, 5, [6, 9]]]];
  const merged = arrays.flat(2);  // गहराई 2
  document.write(merged);
</script>
</body>
</html>

आउटपुट

1,2,2,3,4,5,6,9

flat() मेथड विवरण

arr.flat([depth])
// depth: डिफ़ॉल्ट 1, Infinity लिए पूरी गहराई तक

उदाहरण

[1, [2, [3, [4]]]].flat()        // [1, 2, [3, [4]]] - डिफ़ॉल्ट गहराई 1
[1, [2, [3, [4]]]].flat(2)       // [1, 2, 3, [4]]
[1, [2, [3, [4]]]].flat(Infinity) // [1, 2, 3, 4] - पूरी तरह फ्लैट

पॉलीफिल (पुराने ब्राउज़र्स के लिए)

if (!Array.prototype.flat) {
  Array.prototype.flat = function(depth = 1) {
    return this.reduce((acc, val) => 
      acc.concat(Array.isArray(val) && depth > 0 ? val.flat(depth - 1) : val), []);
  };
}
  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> body { &nb

  1. JavaScript में ऑब्जेक्ट्स की सरणी को ID के आधार पर कैसे ग्रुप करें? JavaScript में ऑब्जेक्ट्स की सरणी को ID के आधार पर कैसे ग्रुप करें?

    JavaScript में ऑब्जेक्ट्स की सरणी को ID के आधार पर ग्रुप करने का निम्नलिखित कोड है:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <

  1. - JavaScript ऐरे को C# ऐरे में कनवर्ट करना

    JavaScript ऐरे से C# ऐरे में कनवर्जन JavaScript ऐरे: <script> var myArr = new Array(5); myArr[0] = Welcome; myArr[1] = to; myArr[2] = the; myArr[3] = Web; myArr[4] = World; </script> कॉमा सेपरेटर के साथ स्ट्रिंग में कनवर्ट करें: document.getElementById(dem