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

JavaScript में ऐरे को रिड्यूस करते समय उसके एक फ़ील्ड को भी मर्ज कैसे करें


विचार करें, हमारे पास ऑब्जेक्ट्स का निम्न ऐरे है:

const arr = [
  { id: 121, hobby: 'cycling' },
  { id: 125, hobby: 'jogging' },
  { id: 129, hobby: 'reading' },
  { id: 121, hobby: 'writing' },
  { id: 121, hobby: 'playing football' },
  { id: 125, hobby: 'cooking' },
  { id: 129, hobby: 'horse riding' }
];

मान लीजिए, हमें एक फ़ंक्शन लिखना है जो ऐसा ऐरे लेता है और सामान्य id प्रॉपर्टी के आधार पर इसे मर्ज करता है, और hobby प्रॉपर्टी के लिए हम इसे एक ऐरे असाइन करते हैं और विशिष्ट ids के लिए सभी शौक उसमें डालते हैं।

हम Array.prototype.reduce() मेथड का उपयोग करके ऐरे पर पुनरावृति करेंगे और उसी समय समान इंडेक्स वाली एंट्रीज को मर्ज करेंगे।

इसे करने का कोड होगा:

उदाहरण

const arr = [
  { id: 121, hobby: 'cycling' },
  { id: 125, hobby: 'jogging' },
  { id: 129, hobby: 'reading' },
  { id: 121, hobby: 'writing' },
  { id: 121, hobby: 'playing football' },
  { id: 125, hobby: 'cooking' },
  { id: 129, hobby: 'horse riding' }
];
const mergeArray = (arr) => {
  return arr.reduce((acc, val) => {
    const ind = acc.findIndex(item => item.id === val.id);
    if(ind !== -1){
      acc[ind].hobby.push(val.hobby);
    }else{
      acc.push({
        id: val.id,
        hobby: [val.hobby]
      });
    };
    return acc;
  }, []);
};
console.log(mergeArray(arr));

आउटपुट

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

[
  { id: 121, hobby: [ 'cycling', 'writing', 'playing football' ] },
  { id: 125, hobby: [ 'jogging', 'cooking' ] },
  { id: 129, hobby: [ 'reading', 'horse riding' ] }
]

  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

  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 में बटन क्लिक पर ऐरे आइटम्स को रिवर्स क्रम में एक-एक करके कैसे प्रदर्शित करें?

    मान लीजिए निम्न हमारा ऐरे है: var listOfNames = [    'John',    'David',    'Bob' ]; निम्न हमारा बटन है: <button id="reverse" onclick="reverseTheArray()">Click The Button To get the Reverse Value</button> अब, ऐरे आ