Question d’entretien chez LinkedIn

// Given var endorsements = [ { skill: 'css', user: 'Bill' }, { skill: 'javascript', user: 'Chad' }, { skill: 'javascript', user: 'Bill' }, { skill: 'css', user: 'Sue' }, { skill: 'javascript', user: 'Sue' }, { skill: 'html', user: 'Sue' } ]; getSkills = (endorsements) => { // Result // [ // { skill: 'javascript', user: ['Chad', 'Bill', 'Sue'], count: 3 }, // { skill: 'css', user: ['Sue', 'Bill'], count: 2 }, // { skill: 'html', user: ['Sue'], count: 1 } // ]; } see this image: http://i.imgur.com/UIeB3n4.png

Réponses aux questions d'entretien

Utilisateur anonyme

21 nov. 2021

let endorsements = [ { skill: 'css', user: 'Bill' }, { skill: 'javascript', user: 'Chad' }, { skill: 'javascript', user: 'Bill' }, { skill: 'css', user: 'Sue' }, { skill: 'javascript', user: 'Sue' }, { skill: 'html', user: 'Sue' }, ]; let x = endorsements.reduce((acc, { skill, user }) => { if (skill in acc) { acc[skill] = { user: [...acc[skill]['user'], user], count: acc[skill]['count'] + 1, skill: skill, }; } else { acc[skill] = { user: [user], count: 1, skill: skill, }; } return acc; }, {}); console.log(Object.values(x));

3

Utilisateur anonyme

9 févr. 2022

I did in a different way let outPut = []; let skillMap = {}; for (let char of endorsements) { if (char['skill'] in skillMap) { skillMap[char['skill']] = [...skillMap[char['skill']], char['user']]; } else { skillMap[char['skill']] = [char['user']]; } } for (let key in skillMap) { let skillObj = {}; skillObj['skill'] = key; skillObj['user'] = skillMap[key]; skillObj['count'] = skillMap[key].length; outPut.push(skillObj); } return outPut.sort((a, b) => b.count - a.count);

Utilisateur anonyme

23 févr. 2019

getSkills = endorsements => { const skillMap = {}; // assumption - each object has all the properties, nothing is missing endorsements.forEach((item, index) => { const { skill, user } = item; if (!skillMap[skill]) { skillMap[skill] = {}; skillMap[skill]["user"] = []; // skillMap[skill]["user"].push(user); skillMap[skill]["count"] = 0; } skillMap[skill]["user"].push(user); skillMap[skill]["count"] += 1; // } }); return Object.keys(skillMap).map(key => [ { skill: key, ...skillMap[key] } ]); };

Utilisateur anonyme

27 mars 2019

let array=[]; let user_Array=[]; let value_exist=false; for(let i=0,len=endorsements.length;i

Utilisateur anonyme

14 déc. 2020

const getSkills = (endorsements) => { const endorsementsMap = endorsements.reduce((accum, curr) => { const { skill, user } = curr; if (accum.has(skill)) { accum.set(skill, [...accum.get(skill), user]); } else { accum.set(skill, [user]); } return accum; }, new Map()); let result = []; for (let [skill, user] of endorsementsMap.entries()) { result.push({ skill, user, count: user.length || 0 }); } return result; };

Utilisateur anonyme

7 juin 2022

const en = endorsements.reduce((acc, { skill, user }) => { if (!acc[skill]) { acc[skill] = { skill, users: [user], count: 1 }; } else { acc[skill].users.push(user); acc[skill].count = acc[skill].count + 1; } return acc; }, {}); const enArray = Object.values(en); enArray.sort((a, b) => b.count - a.count); return enArray;

Utilisateur anonyme

19 avr. 2022

getSkills = (endor) => { let result = [] let hash = {} for ( let i = 0;i b[1].length - a[1].length) for (let i = 0; i < hash.length;i++){ let obj = {skill:hash[i][0], user: [],count:0} // {skill:'css'} for( let j = 0; j < hash[i][1].length;j++){ obj.user.push(hash[i][1][j]) obj.count++ } result.push(obj) } return result }