题目描述

统计 [‘12a’,’3b’,’4c’,’15d’,’15e’,’2a’, ‘1b’] 数组中出现次数最多的字母前的数字和,这个数组就是a,12 + 2 = 14。

题解

  1. function getResult(tempArr){
  2. const acc = tempArr.reduce((acc, cur) => {
  3. const char = cur.slice(-1);
  4. const num = cur.slice(0, -1);
  5. if(acc[char]) {
  6. acc[char].push(num);
  7. } else {
  8. acc[char] = [num];
  9. }
  10. return acc;
  11. }, {})
  12. return Object.keys(acc)
  13. .reduce((max, key) => {
  14. const cur = acc[key];
  15. if(cur.length > max.length) {
  16. max = cur;
  17. }
  18. return max
  19. })
  20. .reduce((total, cur) => {
  21. return (+total) + (+cur);
  22. }, 0)
  23. }
  24. getResult(['12a','3b','4c','15d','15e','2a', '1b'])