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

JavaScript में 2-D सरणी को नई पंक्तियों और स्तंभों में पुनः आकार देना

समस्या

एक 2-D सरणी, वांछित पंक्तियों की संख्या r और स्तंभों की संख्या c दिए गए हैं, मूल सरणी के तत्वों को पंक्ति-क्रम (row-traversing) में बनाए रखते हुए एक नई 2-D सरणी बनाएं। यदि कुल तत्वों की संख्या मेल नहीं खाती, तो मूल सरणी लौटाएं।

उदाहरण

const arr = [ [6, 7], [8, 9] ]; 
const r = 1, c = 4; 
// आउटपुट: [[6, 7, 8, 9]]

कार्यान्वयन

const reshapeArray = (arr, r, c) => { 
  if (r * c !== arr.length * arr[0].length) { 
    return arr; // आकार मेल नहीं खाता, मूल लौटाएं 
  } 
  const res = []; 
  let row = []; 
  arr.forEach(items => items.forEach(num => { 
    row.push(num); 
    if (row.length === c) { 
      res.push(row); 
      row = []; 
    } 
  })); 
  return res; 
}; 

console.log(reshapeArray(arr, r, c)); // [[6, 7, 8, 9]]

आउटपुट

[[6, 7, 8, 9]]

व्याख्या

  • पहले जांचें कि क्या नया आकार कुल तत्वों से मेल खाता है।
  • मूल सरणी को पंक्ति-दर-पंक्ति समतल (flatten) करें।
  • हर c तत्वों पर एक नई पंक्ति शुरू करें।
  • यह दृष्टिकोण पंक्ति-क्रम को बनाए रखता है और O(m*n) समय में चलता है।
  1. - जावास्क्रिप्ट में ऐरे को कैसे खाली करें

    जावास्क्रिप्ट में ऐरे को क्लियर/खाली करने के कई तरीके हैं। आपको संदर्भ के आधार पर उनका उपयोग करने की आवश्यकता है। आइए उनमें से प्रत्येक को देखते हैं। मान लें हमारे पास एक ऐरे इस प्रकार परिभाषित है - let arr = [1, test, {}, 123.43]; नए ऐरे से प्रतिस्थापित करना - arr = []; यह सबसे तेज़ तरीका है। यह a

  1. जावास्क्रिप्ट Array.prototype.map() फंक्शन जावास्क्रिप्ट Array.prototype.map() फंक्शन

    जावास्क्रिप्ट का Array.prototype.map() फंक्शन कॉल किए गए फंक्शन के परिणामों के साथ एक नया एरे बनाने के लिए उपयोग किया जाता है। सिंटैक्स इस प्रकार है: arr.map(function callback(currentValue[, index[, array]])) उदाहरण 1 - Math.abs <!DOCTYPE html> <html> <body> <h2>डेमो हेडि

  1. JavaScript बेसिक ऐरे मेथड्स JavaScript बेसिक ऐरे मेथड्स

    कुछ बेसिक JavaScript ऐरे मेथड्स निम्नलिखित हैं: मेथड विवरण Array.push() ऐरे के अंत में एलिमेंट्स जोड़ने के लिए। Array.pop() ऐरे के अंत से एलिमेंट्स हटाने के लिए। Array.unshift() ऐरे के शुरुआत में एलिमेंट्स