js中数组去重,尽量只用for 和if循环的,网上找的方法很多都不能用,谢谢...
发布网友
发布时间:2022-04-23 01:44
我来回答
共3个回答
热心网友
时间:2022-04-07 07:59
方法一:去重复数据
<script>
Array.prototype.distinct=function(){
var a=[],b=[];
for(var prop in this){
var d = this[prop];
if (d===a[prop]) continue; //防止循环到prototype
if (b[d]!=1){
a.push(d);
b[d]=1;
}
}
return a;
}
var x=['a','b','c','d','b','a','e','a','b','c','d','b','a','e'];
document.write('原始数组:'+x);
document.write("<br />");
document.write('去重复后:'+x.distinct());
</script>
方法二:取重复数据
<script type="text/javascript">
Array.prototype.distinct=function(){
var a=[],b=[],c=[],d=[];
for(var prop in this){
var d = this[prop];
if (d===a[prop])
{
continue;
}//防止循环到prototype
if (b[d]!=1){
a.push(d);
b[d]=1;
}
else {
c.push(d);
d[d]=1;
}
}
//return a;
return c.distinct1();
}
Array.prototype.distinct1=function(){
var a=[],b=[];
for(var prop in this){
var d = this[prop];
if (d===a[prop]) continue; //防止循环到prototype
if (b[d]!=1){
a.push(d);
b[d]=1;
}
}
return a;
}
热心网友
时间:2022-04-07 09:17
<script language="javascript" type="text/javascript">
var str = "1,2,4,5,2,4";
var pattern = /(\d+),(?=.*?\1(,|$))/g;
str = str.replace(pattern, "");
alert(str);
</script>
热心网友
时间:2022-04-07 10:51
r.push(v);