本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:
分享es3去重+找出重复个数跟es6的
Array.prototype.unique3 = function(){
var res = [];
var json = {};
for(var i = 0;i<this.length;i++){
//console.log(!json[this[i]]); //如果是第一次出现就是true
if(!json[this[i]]){
res.push(this[i]);
json[this[i]] =1;
}
}
return res;
}
Array.prototype.geshu = function(value){
let str=this.join('');
return str.split(value).length-1
}
var arr = [1,4,1,3,2,3,1,1,1,1,1];
console.log(arr.unique3());
var xxx=arr.unique3();
var newArr=[]
for(var i=0;i<xxx.length;i++){
newArr.push(arr.geshu(xxx[i]))
}
console.log(newArr);
看来看去觉得es3.es5写的还真不明确后面用es6写一下
{
class Shuzu{
constructor(arr) {
this.arr=arr
}
unique3(){ //去重
return Array.from(new Set(this.arr))
}
geshu(){ //找出重复的个数
let num=[];
let arrSum=this.unique3();
arrSum.forEach(value=>{
num.push(this.arr.join('').split(value).length-1)
})
return num
}
}
const arr = [1,4,1,3,2,3,1,1,1,1,1];
const xxx=new Shuzu(arr)
console.log(xxx.unique3())
console.log(xxx.geshu())
}