今天在做到蓝桥云课中用js进行删除数组中重复出现的元素,自己进行了一点总结;
- 这里的删除相同元素与c++思想上不同。
- 在c++中我是通过先按大小排序后,再进行比对然后后往前赋值类似于整体移动前一位,长度减一位;
- 而在js中则是用到字典的方法,定义一个字典,将数组的值作为key存进去。
- 并且使用if-else进行判断是否重复出现,是的否values++;否则的话给其赋值1;这样以来我们还可以统计其出现次数
代码如下:
<script>
var a=["a","b","c","b","e","e"];
function Delete(){
var d={};var s=[];
for(var i=0;i<a.length;i++)
{
var num=a[i];
if(d[num])
{
d[num]++;
}
else{
d[num]=1;
}
}
for(var key in d){
s.push(key);
}
return s;
}
console.log(Delete(a));
</script>
蓝桥云课里面压入数组这一块使用的是indexof(),因为没有其他过多操作,就简化了一点实现步骤。使用的话代码如下:
for (var key in d) {
if (d[key] == 1) {
s.push(key);
} else {
if (s.indexOf(key) == -1) {
s.push(key);
}
}
}