<script>
// 数组去重 / 字符串去除重复字母
// 数组中存储重复的数值
// 去除重复数值之后,应该是 [1,2,3,4,5]
var arr = [1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,5,5,5,5,5]
// 基本思路1 indexOf()
// 建立一个新的数组,将原始数值中的数值,向新的数组中写入
// 如果这个数值不存在于新的数组中,就执行写入,如果已经存在,就不写入
// 建立一个空数组,来存储原始数组中,不重复数据
var newArr = [];
// 循环遍历,获取原始数组arr中的所有数值
arr.forEach(function(v){
// 在新数组中,查找当前获取的原始数组的数值
// newArr.indexOf(v) 执行结果如果是 -1
// 证明在新数组中,没有这个原始数组的数据
if(newArr.indexOf(v) === -1){
// 将这个数据,写入到新数组中
newArr.push(v)
}
})
console.log( newArr );
var str = 'aaabbbbcccddddeeeeefffff';
// 原理相同,只是字符串不能使用forEach()循环
var newStr = '';
// 通过for...in来循环遍历,字符串
// key存储的是每个字母的索引下标
for(var key in str){
// str[key] 是 当前循环,获取的索引下标,对应的字符串中的字母
// newStr.indexOf(str[key]) 判断 新字符串中,是否有当前这个字母
// 如果结果是 -1 证明新字符串中没有这个字母
if(newStr.indexOf(str[key]) === -1){
// 执行字符串拼接操作,将这个字母拼接入新的字符串中
newStr += str[key];
}
}
console.log(newStr);
</script>
完整代码:
<script>
var arr = [1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,5,5,5,5,5]
var newArr = [];
arr.forEach(function(v){
if(newArr.indexOf(v) === -1){
newArr.push(v)
}
})
console.log(newArr);
var str = 'aaaabbbbcccdjjjdddduuu';
var newStr = '';
for(var key in str){
if(newStr.indexOf(str[key]) === -1){
newStr += str[key];
}
}
console.log(newStr);
</script>