js中数组去重,尽量只用for 和if循环的,网上找的方法很多都不能用,谢谢大神们

已解决怎么办啊基本思路,对象的属性名不能重复(注意不是属性值),重复的话覆盖。所以得到这样的代码:varstr="1,2,4,5,2,4";//document.getE... 已解决怎么办啊
基本思路,对象的属性名不能重复(注意不是属性值),重复的话覆盖。所以得到这样的代码:
var str = "1,2,4,5,2,4"; // document.getElementById("textbox1").innerText;
var s = str.split(',');
var dic = {};
for (var i = s.length; i--; ) {
dic[s[i]]=s[i];
}
var r = [];
for (var v in dic) {
r.push(dic[v]);
}
alert(r.join());// -----------1,2,4,5
这个方法
展开
 我来答
dllgdx_2000
2012-11-27 · TA获得超过922个赞
知道小有建树答主
回答量:1202
采纳率:0%
帮助的人:756万
展开全部
方法一:去重复数据
<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;
}
匿名用户
推荐于2018-03-23
展开全部
<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>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2012-11-19 · TA获得超过4630个赞
知道大有可为答主
回答量:1345
采纳率:50%
帮助的人:1640万
展开全部
r.push(v);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式