हमारे पास ऑब्जेक्ट्स का एक ऐरे है। यदि ऑब्जेक्ट की एक प्रॉपर्टी दूसरे ऑब्जेक्ट में समान है, तो हम इसे डुप्लिकेट एंट्री मानते हैं।
हम इस प्रॉपर्टी द्वारा ऑब्जेक्ट्स को ग्रुप करना चाहते हैं और स्टोर करना चाहते हैं कि "डुप्लिकेट" कितनी बार हुआ।
X A B O Y X Z I Y X Z U X A B L Y X Z K
हम पहले मान द्वारा ग्रुप करना चाहते हैं।
दो अन्य प्रॉपर्टीज़ प्रत्येक डुप्लिकेट में समान हैं, लेकिन पहली वैल्यू की तुलना करना पर्याप्त होगा।
हमें यूज़र को ऐसा परिणाम दिखाना है:
Y X Z (3) X A B (2)
उदाहरण
इसके लिए कोड होगा:
const arr = [ {x: 'x', acc: 'acc', val: 'val'}, {y: 'y', x: 'x', z: 'z'}, {y: 'y', x: 'x', z: 'z'}, {x: 'x', c: 'c', val: 'val'} ]; const countOccurrence = (arr = []) => { const res = {}; arr.forEach (item => { Object.keys( item ).forEach (prop => { ( res[prop] ) ? res[prop] += 1 : res[prop] = 1; }); }); return res; } const groupByOccurrence = (data = []) => { const obj = countOccurrence(data); const res = Object.keys ( obj ).reduce ( ( acc, val ) => { ( acc[obj[val]] ) ? acc[obj[val]].push ( val ) : acc[obj[val]] = [val]; return acc; }, {}); return res; } console.log(groupByOccurrence(arr));आउटपुट
And the output in the console will be: { '1': [ 'acc', 'c' ], '2': [ 'val', 'y', 'z' ], '4': [ 'x' ] }