原字符串:I am very very happy today 以下操作实际是对 Array 的操作

_

一、逆序输出

理想结果:today happy very very am I
实现方式:reverse()

  1. let Str='I am very very happy today';
  2. return Str.split(' ').reverse().join(' ');

二、完全逆序

理想结果:yadot yppah yrev yrev ma I

  1. let Str='I am very very happy today';
  2. return Str.split(' ').reverse().join(' ').split('').join('');

三、去除重复项

理想结果:I am very happy today
实现方式:ES6 Set() 构造函数可以过滤重复项

  1. let Str = 'I am very very happy today';
  2. return Array.from(new Set(Str.split(' '))).join(' ');

四、统计出现次数最多的字母

实现方式:对数组的分析和整理,以及对 Sort() 排序的使用

  1. let Str = 'I am very very happy today';
  2. let onlyChar = Array.from(new Set(Str.replace(/\s*/g, '').split('')));
  3. let result = [];
  4. function check(key, data) {
  5. let num = 0;
  6. data.forEach(element => {
  7. if (element === key) num++;
  8. });
  9. result.push({ name: key, sum: num });
  10. }
  11. let theData = Str.replace(/\s*/g, '').split('');
  12. onlyChar.forEach(element => check(element, theData));
  13. let SortData = result.sort((obj1, obj2) => {
  14. return -(obj1.sum - obj2.sum);
  15. });
  16. return SortData[0].name;

五、统计字符串中的第一个非重复的字符
实现方式:使用 filter() 函数对数组进行过滤

  1. //基于上面的代码
  2. return SortData.filter(p => p.sum === 1)[0].name;