मान लीजिए हमें एक फ़ंक्शन लिखना है जो संख्याओं की एक सरणी और संख्या n लेता है, जहाँ n >= सरणी की किसी भी संख्या। फ़ंक्शन को सरणी को उप-सरणियों में तोड़ना आवश्यक है यदि सरणी के लगातार तत्वों का योग संख्या n से अधिक हो जाता है।
उदाहरण के लिए:
// यदि मूल सरणी है: const arr = [2, 1, 2, 1, 1, 1, 1, 1]; // और संख्या n 4 है // तो आउटपुट सरणी होनी चाहिए: const output = [[2, 1], [2, 1, 1], [1, 1, 1]];
आइए इस फ़ंक्शन के लिए कोड लिखते हैं:
उदाहरण
const arr = [2, 1, 2, 1, 1, 1, 1, 1];
const splitArray = (arr, num) => {
return arr.reduce((acc, val, ind) => {
let { sum, res } = acc;
if (ind === 0) {
return { sum: val, res: [[val]] };
}
if (sum + val <= num) {
res[res.length - 1].push(val);
sum += val;
} else {
res.push([val]);
sum = val;
}
return { sum, res };
}, {
sum: 0,
res: []
}).res;
};
console.log(splitArray(arr, 4));
console.log(splitArray(arr, 5));
आउटपुट
कंसोल में आउटपुट होगा:
[[2, 1], [2, 1, 1], [1, 1, 1]] [[2, 1, 2], [1, 1, 1, 1, 1]]