Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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'
}];

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

हम सरणी पर पुनरावृति करने के लिए 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

  1. जावास्क्रिप्ट में आईडी द्वारा वस्तुओं की सरणी कैसे समूहित करें?

    जावास्क्रिप्ट में आईडी के आधार पर वस्तुओं के समूह के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <titl

  1. बटन क्लिक पर रिवर्स में एक बार में जावास्क्रिप्ट सरणी आइटम कैसे प्रदर्शित करें?

    मान लें कि निम्नलिखित हमारी सरणी है - var listOfNames = [    'John',    'David',    'Bob' ]; हमारा बटन निम्नलिखित है - <button id="reverse" onclick="reverseTheArray()">Click The Button To get the Reverse Value</butto