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

एक वर्ग मैट्रिक्स जावास्क्रिप्ट के तत्वों को सर्पिल करना

<घंटा/>

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो इस तरह के शाब्दिक सरणी के द्वि-आयामी (आवश्यक रूप से एक वर्ग मैट्रिक्स) सरणी लेता है -

const arr = [
   [1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
];

फ़ंक्शन को एक नई सरणी का निर्माण करना चाहिए जो स्थिति (0, 0) से शुरू होने वाले इनपुट सरणी से तत्वों को सर्पिल रूप से लेता है और उस एकल आयामी सरणी को वापस कर देता है।

इसलिए, इस सरणी के लिए, सर्पिल जैसा दिखना चाहिए -

const output = [1, 2, 3, 6, 9, 8, 7, 4, 5];

हम एक अस्थायी चर बनाएंगे जो वर्तमान पंक्ति और वर्तमान कॉलम पर, प्रारंभ और अंत दोनों में इंगित करेगा।

इस तरह, हम पुनरावृत्त रूप से प्रारंभिक पंक्ति और प्रारंभिक स्तंभ को बढ़ा सकते हैं और अंतिम पंक्ति और समाप्ति स्तंभ को इस तरह से घटा सकते हैं जो मैट्रिक्स के केंद्र की ओर बढ़ता है।

उदाहरण

const arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];
const spiral = (arr = []) => {
   if (!arr || arr.length === 0) {
      return [];
   };
   let startRow = 0;
   let startCol = 0;
   let res = [];
   let endCol = arr[0].length - 1;
   let endRow = arr.length - 1;
   while (startRow <= endRow && startCol <= endCol) {
      for (let i = startCol; i <= endCol; i++) {
         res.push(arr[startRow][i]);
      }
      startRow++;
      for (let i = startRow; i <= endRow; i++) {
         res.push(arr[i][endCol]);
      }
      endCol--;
      if (startRow <= endRow) {
         for (let i = endCol; i >= startCol; i--) {
            res.push(arr[endRow][i]);
         }
         endRow--;
      }
      if (startCol <= endCol) {
         for (let i = endRow; i >= startRow; i--) {
            res.push(arr[i][startCol]);
         } startCol++;
      }
   }
   return res;
};
console.log(spiral(arr));

आउटपुट

और कंसोल में आउटपुट होगा -

[
   1, 2, 3, 6, 9,
   8, 7, 4, 5
]

  1. जावास्क्रिप्ट डोम क्या है?

    जावास्क्रिप्ट दस्तावेज़ ऑब्जेक्ट मॉडल (डीओएम) एक वेबपेज के HTML तत्वों का प्रतिनिधित्व है। यह एक इंटरफ़ेस है जिसका उपयोग हम किसी वेब पेज की सामग्री या शैली को बदलकर उसमें हेरफेर करने के लिए कर सकते हैं। हम वेबपेज पर राइट क्लिक करके और निरीक्षण का चयन करके DOM तक पहुँच सकते हैं। ऐसा करने से, जिस व

  1. जावास्क्रिप्ट के साथ एक ही सरणी में किसी सरणी के तत्वों की नकल कैसे करें?

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

  1. जावास्क्रिप्ट में स्क्वायर मैट्रिक्स रोटेशन

    हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो n * n क्रम (वर्ग मैट्रिक्स) के सरणियों की एक सरणी लेता है। फ़ंक्शन को सरणी को 90 डिग्री (घड़ी की दिशा में) घुमाना चाहिए। शर्त यह है कि हमें इसे जगह में करना होगा (बिना किसी अतिरिक्त सरणी को आवंटित किए)। उदाहरण के लिए - यदि इनपुट ऐरे है - const