一、数组去重
**实现效果:**把旧数组中不重复的元素选取出来放到新数组中,重复的元素只保留一个。
**分析:**首先遍历旧数组,然后拿着旧数组元素去查询新数组,如果新数组中不存在该元素,就添加进去,否则不添加。
**判断:**如何判断新数组中是否存在旧数组元素,利用新数组.indexOf筛选,如果返回值是-1,说明该元素不存在。
代码实现:
<script>
function unique(arr) {
var newArr = []; // 创建一个新数组为空
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]); // 在新数组末尾追加符合条件的元素
}
}
return newArr;
}
var demo = unique(['c', 's', 'p', 'e', 'q', 's', 'r', 's', 'p', 'a']);
console.log(demo); // 打印值 ["c", "s", "p", "e", "q", "r", "a"]
</script>
二、统计字符串内出现最多的字符、次数
实现效果:给定一个字符串,统计其中出现最多的字符,及其出现次数
**分析:**首先创建一个新的空对象,利用charAt() 遍历目标字符串,把每个字符串都存储给对象,如果该对象没有该属性,就赋值为1,如果存在,值再+1。最后遍历对象,得到最大值和该字符。
代码实现:
<script>
var str = 'abaasdffggghhjjkkgfddsssss3444343';
var o = {}; // 创建一个空对象
for (var i = 0; i < str.length; i++) {
var chars = str.charAt(i);
if (o[chars]) {
o[chars]++;
} else {
o[chars] = 1;
}
}
console.log(o);
var max = 0;
var ch = '';
for (k in o) {
if (max < o[k]) {
max = o[k];
ch = k;
}
}
console.log(max);
console.log(ch);```
</script>