利用对象的属性不能相同的特点进行去重:
var b = Array.from('acbacebgjfab') //通过Array.from方法定义一个新的数组
function uniq(arry){
if(!Array.isArray(arry)){ //先判断传入的数据是不是数组类型
return alert('传入数据类型错误!')
}
var newArray=[]; //定义一个新的数组,用来接收去重后的值
var obj = {} //定义一个新的对象,利用对象属性名不能重复,来判断值是否重复
for(let i=0;i<arry.length;i++){
if(!obj[arry[i]]){ //如果对象中没有这项属性名,说明值没有重复
newArray.push(arry[i]) // 将没有重复的值push到新的数组当中去
obj[arry[i]]=1 //给对象中属性名为arry[i]赋值,表示第一次出现
// console.log(obj[arry[i]])
}else{
obj[arry[i]]++ // 如果在对象中出现,只需要给对象中这一项的次数+1
// console.log(obj[arry[i]])
}
}
console.log(obj);
return newArray
}
console.log(uniq(b));
时间如白驹过隙,忽然而已,且行且珍惜......