JS代码
//定义一个具有许多重复元素的数组
var myarr = ["a", "b", "c", "c", "b", "a", "d", "f", "f", "a", "b", "c"];
//定义去重函数
function norepeat(arr) {
//定义一个空数组
var obj = [];
//定义循环
for (i = 0; i < arr.length; i++) {
//定义一个新数组接受需要去重数组的元素 以第一位元素为例
var arry = arr[i];//此时 arry=arr[0]=a;
//将去重元素数组内容作为下标
//如果以原数组对应内容作为下标的元素以存在
if (obj[arry]) {//如果obj[a]已存在
obj[arry]++;//obj[a]++;
} else {//如果不存在 如obj[a]元素没有出现过
obj[arry] = 1;//将对应下标的属性值定义为一 obj[a]=1;
}
}
//循环走完之后,obj数组的下标就是去重之后的数组,执行结果见下图
console.log(obj);
//再次定义数组接收下标
var arr1 = [];
//使用for-in循环,i就是obj的下标
for (var i in obj) {
//将下标依次添加到新定义的数组中
arr1.push(i);
}
//返回去重后的数组
return arr1;
}
//调用去重函数
norepeat(myarr)
console.log(norepeat(myarr))//见下图
obj数组
在obj数组中,下标为去重后的原数组,内容为原数组去重前的原数组每个元素出现次数。