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

JavaScript में ऐरे को कंप्रेस करके लगातार तत्वों को ग्रुप करें


हमें एक स्ट्रिंग दी गई है जिसमें कुछ दोहराने वाले शब्द डैश (-) से अलग हैं जैसे यह:

const str = 'monday-sunday-tuesday-tuesday-sunday-sunday-monday-mondaymonday';

अब हमारा काम एक फ़ंक्शन लिखना है जो ऑब्जेक्ट्स का एक ऐरे लौटाता है, जहां प्रत्येक ऑब्जेक्ट में दो प्रॉपर्टीज value और count होती हैं, value स्ट्रिंग में शब्द है (Monday, Tuesday, Sunday) और count उनकी लगातार उपस्थिति की गिनती है।

उपरोक्त स्ट्रिंग के लिए, यह ऐरे कुछ इस तरह दिखेगा:

const arr = [
  { val: 'monday', count: 1 },
  { val: 'sunday', count: 1 },
  { val: 'tuesday', count: 2 },
  { val: 'sunday', count: 2 },
  { val: 'monday', count: 3 }
]

क्योंकि monday एक बार आता है, फिर sunday एक बार, tuesday दो बार, sunday दो बार और अंत में monday तीन बार।

हम ऐरे को विभाजित करेंगे और फिर Array.prototype.reduce() मेथड का उपयोग करके वांछित ऐरे को रिकर्सिवली लौटाएंगे जैसे यह:

यहां पूरा कोड है:

उदाहरण

const str = 'monday-sunday-tuesday-tuesday-sunday-sunday-monday-mondaymonday';
const str2 = 'friday-friday-sunday-tuesday-sunday-sunday-monday-thursdaymonday';
const compressString = (str) => {
  return str.split('-').reduce((acc, val) => {
    const { length: l } = acc;
    if(acc[l-1]?.val === val){
      acc[l-1].count++;
      return acc;
    }else{
      return acc.concat({
        val,
        count: 1
      });
    }
  }, []);
}
console.log(compressString(str));
console.log(compressString(str2));

आउटपुट

उपरोक्त कोड के लिए कंसोल में आउटपुट होगा:

[
  { val: 'monday', count: 1 },
  { val: 'sunday', count: 1 },
  { val: 'tuesday', count: 2 },
  { val: 'sunday', count: 2 },
  { val: 'monday', count: 3 }
]
[
  { val: 'friday', count: 2 },
  { val: 'sunday', count: 1 },
  { val: 'tuesday', count: 1 },
  { val: 'sunday', count: 2 },
  { val: 'monday', count: 1 },
  { val: 'thursday', count: 1 },
  { val: 'monday', count: 1 }
]

  1. - JavaScript सरणी ऑब्जेक्ट्स की गिनती कैसे करें?

    JavaScript सरणी ऑब्जेक्ट्स की गिनती के लिए, हम Object.prototype.__proto__ प्रॉपर्टी का उपयोग कर रहे हैं। उदाहरण सरणी ऑब्जेक्ट्स गिनने के लिए निम्न कोड चलाएं: <html> <head> <title>JavaScript Clone Date</title> </head> <body> <script> var

  1. JavaScript में ऑब्जेक्ट्स की सरणी को ID के आधार पर कैसे ग्रुप करें? JavaScript में ऑब्जेक्ट्स की सरणी को ID के आधार पर कैसे ग्रुप करें?

    JavaScript में ऑब्जेक्ट्स की सरणी को ID के आधार पर ग्रुप करने का निम्नलिखित कोड है:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <

  1. - JavaScript में सरणी के तत्वों की डीप काउंट

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो तत्वों की एक नेस्टेड सरणी लेता है और सरणी में मौजूद तत्वों की डीप काउंट वापस करता है। इनपुट const arr = [1, 2, [3, 4, [5]]]; आउटपुट const output = 7; क्योंकि स्तर 1 पर तत्व 2 हैं, स्तर 2 पर तत्व 2 हैं और स्तर 3 पर तत्व 1 है, इसलिए डीप काउंट 7 है। उदाहर