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

JavaScript में सरणी को जटिल सरणी में कैसे बदलें?


मान लीजिए हमें एक फ़ंक्शन लिखना है जो संख्याओं की एक सरणी और संख्या 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]]

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

    जावास्क्रिप्ट में एरे को सेट में कन्वर्ट करने के लिए कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style> body { &nb

  1. डिक्शनरी को जावास्क्रिप्ट ऑब्जेक्ट्स की लिस्ट में कैसे बदलें? डिक्शनरी को जावास्क्रिप्ट ऑब्जेक्ट्स की लिस्ट में कैसे बदलें?

    डिक्शनरी को जावास्क्रिप्ट ऑब्जेक्ट्स की लिस्ट में बदलने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style> &n

  1. - C# में 2D ऐरे को 1D ऐरे में कैसे कन्वर्ट करें?

    टू-डायमेंशनल ऐरे और वन-डायमेंशनल ऐरे सेट करें:int[,] a = new int[2, 2] {{1,2}, {3,4}}; int[] b = new int[4];2D को 1D ऐरे में कन्वर्ट करने के लिए, टू-डायमेंशनल को वन-डायमेंशनल में सेट करें जिसे हमने पहले घोषित किया था:for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) { b[k++] = a[i, j];