这是小编对之前数组环节内容的补充,介绍乱序以及去重,直接撸上代码。
一、数组乱序
主要是数组sort( )方法的一个引申,我们知道sort是根据参数正负值来做排序判定,那么实现当然是使其随机正负值
var a = [1,2,3,4,5];
Array.prototype.muddled=function(){
this.sort(function(){
return (0.5-Math.random());
});
}
a.muddled();
我们以这样的形式写函数可以直接调用该方法。各个类对象的方法都是存储在相应的prototype中
二、数组去重
这边主要是两种
1.数组去重
Array.prototype.unique=function(){
var obj = {};
var len =this.length;
var arr=[];
for(var i=0; i<len ;i++){
if(! obj[this[i]]){
obj[this[i]]="abc"; // 这边如果用自身的话可能0就无法判断0本身代表非
arr.push(this[i]);
}
}
this.length= arr.length;
for(var j=0 ; j<arr.length;j++){
this[j]=arr[j];
}
return this;
}
这样我们可以实现去掉数组中相同元素。
2.字符串去重
function unique(b){
var obj ={};
var arr=b.split("");
var arr1=[];
for(var i =0 ; i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]]=1;
arr1.push(arr[i]);
}
}
return arr1;
}
主要是将字符串切成数组然后操作一样,这边简洁了一下只写了函数没有去实现对本身操作,有需求则跟上面一致。