हमें एक फ़ंक्शन लिखना है जो पहले तर्क के रूप में एक-आयामी सरणी और दूसरे तर्क के रूप में एक संख्या n लेता है और हमें पैरेंट सरणी के अंदर n उप-सरणियाँ बनानी हैं (यदि संभव हो) और तत्वों को तदनुसार उनमें विभाजित करना है।
** यदि सरणी में 9 तत्व हैं और हमें 4 उप-सरणियाँ बनाने के लिए कहा गया है, तो प्रत्येक उप-सरणी में 2 तत्व विभाजित करने से 5 उप-सरणियाँ बनती हैं और 3 प्रत्येक से 3 बनती हैं, ऐसे मामलों में हमें निकटतम निम्न स्तर (इस मामले में 3) पर वापस आना होगा क्योंकि हमारी आवश्यकता है कि प्रत्येक उप-सरणी में समान संख्या में तत्व वितरित हों, कुछ विशेष मामलों में अंतिम को छोड़कर।
उदाहरण के लिए:
// यदि इनपुट सरणी है: const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']; // और संख्या 2 है // तो आउटपुट होना चाहिए: const output = [ ['A', 'B', 'C', 'D', 'E'], ['F', 'G', 'H', 'I'] ];
आइए इस फ़ंक्शन के लिए कोड लिखते हैं:
उदाहरण
const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];
const splitArray = (arr, rows) => {
const itemsPerRow = Math.ceil(arr.length / rows);
return arr.reduce((acc, val, ind) => {
const currentRow = Math.floor(ind / itemsPerRow);
if (!acc[currentRow]) {
acc[currentRow] = [val];
} else {
acc[currentRow].push(val);
}
return acc;
}, []);
};
console.log(splitArray(arr, 2));
आउटपुट
कंसोल में आउटपुट होगा:
[ ['A', 'B', 'C', 'D', 'E'], ['F', 'G', 'H', 'I'] ]