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

JavaScript में सरणी को खंडों में विभाजित करना


हमें एक फ़ंक्शन लिखना होगा, मान लीजिए chunk() जो पहली आर्गुमेंट के रूप में string / number literals की एक सरणी arr और दूसरी आर्गुमेंट के रूप में एक संख्या n लेता है।

हमें n उपसरणियों की एक सरणी लौटानी आवश्यक है, जिनमें से प्रत्येक में अधिकतम होता है:

arr.length / n तत्व।

तत्वों का वितरण इस तरह होना चाहिए:

पहला तत्व पहली उपसरणी में जाता है, दूसरा दूसरी में, तीसरा तीसरे में और इसी तरह। एक बार जब प्रत्येक उपसरणी में एक तत्व हो जाता है, तो हम फिर से पहली उपसरणी को उसके दूसरे तत्व से भरना शुरू करते हैं। इसी तरह, जब सभी उपसरणियों में दो तत्व हो जाते हैं, तभी हम पहली सरणी में तीसरा तत्व भरते हैं और इसी तरह।

उदाहरण के लिए: यदि इनपुट सरणी है:

const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];

और संख्या n 3 है,

तब आउटपुट होना चाहिए:

const output = [
  [ 656, 67, 54 ],
  [ 756, 43, 768 ],
  [ 5345, 76, 34 ]
];

इसलिए, आइए इस फ़ंक्शन के लिए कोड लिखते हैं। हम मूल सरणी पर Array.prototype.reduce() विधि का उपयोग करके वांछित सरणी का निर्माण करेंगे।

उदाहरण

इसका कोड निम्नलिखित होगा:

const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];
const divideArray = (arr, size) => {
  return arr.reduce((acc, val, ind) => {
    const subIndex = ind % size;
    if(!Array.isArray(acc[subIndex])){
      acc[subIndex] = [val];
    }else{
      acc[subIndex].push(val);
    };
    return acc;
  }, []);
};
console.log(divideArray(input, 3));

आउटपुट

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

[ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ] ]

  1. जावास्क्रिप्ट Array slice() मेथड जावास्क्रिप्ट Array slice() मेथड

    जावास्क्रिप्ट का slice() मेथड एरे में चुने गए एलिमेंट्स को लौटाने के लिए उपयोग किया जाता है। सिंटैक्स इस प्रकार है: array.slice(start, end) ऊपर, start पैरामीटर एक पूर्णांक है जो चयन शुरू करने का स्थान निर्दिष्ट करता है, जबकि end वह स्थान है जहां चयन समाप्त होता है। उदाहरण 1 <!DOCTYPE html>

  1. JavaScript array.values() मेथड JavaScript array.values() मेथड

    JavaScript array.values() एक इटरेटर ऑब्जेक्ट लौटाता है जिसमें दिए गए ऐरे के सभी मान होते हैं। उदाहरण { fillEle.innerHTML = ; for (let x of arr.values()) { fillEle.innerHTML += x + </br>; } }); </script> </body> </html> आउटपुट यहां क

  1. JavaScript Array.flatMap(): मैप और फ्लैटेन एक साथ JavaScript Array.flatMap(): मैप और फ्लैटेन एक साथ

    Array.prototype.flatMap() मेथड पहले प्रत्येक तत्व पर मैप फंक्शन लागू करता है, फिर परिणाम को एक स्तर तक फ्लैट करता है। यह arr.map(...).flat() के बराबर है लेकिन थोड़ा अधिक कुशल है। उदाहरण x); fillEle.innerHTML = फ्लैट एरे:<br>; for (const x of flat.entries()) { f