原字符串:I am very very happy today 以下操作实际是对 Array 的操作
一、逆序输出
理想结果:today happy very very am I
实现方式:reverse()
let Str='I am very very happy today';
return Str.split(' ').reverse().join(' ');
二、完全逆序
理想结果:yadot yppah yrev yrev ma I
let Str='I am very very happy today';
return Str.split(' ').reverse().join(' ').split('').join('');
三、去除重复项
理想结果:I am very happy today
实现方式:ES6 Set() 构造函数可以过滤重复项
let Str = 'I am very very happy today';
return Array.from(new Set(Str.split(' '))).join(' ');
四、统计出现次数最多的字母
实现方式:对数组的分析和整理,以及对 Sort() 排序的使用
let Str = 'I am very very happy today';
let onlyChar = Array.from(new Set(Str.replace(/\s*/g, '').split('')));
let result = [];
function check(key, data) {
let num = 0;
data.forEach(element => {
if (element === key) num++;
});
result.push({ name: key, sum: num });
}
let theData = Str.replace(/\s*/g, '').split('');
onlyChar.forEach(element => check(element, theData));
let SortData = result.sort((obj1, obj2) => {
return -(obj1.sum - obj2.sum);
});
return SortData[0].name;
五、统计字符串中的第一个非重复的字符
实现方式:使用 filter() 函数对数组进行过滤
//基于上面的代码
return SortData.filter(p => p.sum === 1)[0].name;