<script> var obj={}; var wantArr=[]; var arr=['a','b','c','d','a','d']; for(var i=0;i<arr.length;i++){ obj[arr[i]]=arr[i]; } for(var pro in obj){ wantArr.push(obj[pro]) } alert(wantArr) </script>
我改一下你也许就明白了: <script> var obj=[];//创建一个空数组,用来装填关联数组 var wantArr=[]; //创建一个空数组,用来保存我们要的结果 var arr=['a','b','c','d','a','d']; //要剔除重复元素的源数组 for(var i=0;i<arr.length;i++){ //关键在这里:用arr中的每个元素值做关联数组的“关联名”;同时也用它做关联值! //循环中,如果遇到arr的某个与前面重复的元素时,它将覆盖那个“关联名”元素!等于剔除了重复元素 obj[arr[i]]=arr[i]; } //其实到了这里我们已经得到了想要的结果obj[];但由于它是关联数组,取值、运算不很方便,所以就多做一些工作,把它变换为纯数组wantArr[]: for(var pro in obj){ wantArr.push(obj[pro]) } alert(wantArr) </script>
<script>
var obj={};
var wantArr=[];
var arr=['a','b','c','d','a','d'];
for(var i=0;i<arr.length;i++){
obj[arr[i]]=arr[i];
}
for(var pro in obj){
wantArr.push(obj[pro])
}
alert(wantArr)
</script>
我改一下你也许就明白了:
<script>
var obj=[];//创建一个空数组,用来装填关联数组
var wantArr=[]; //创建一个空数组,用来保存我们要的结果
var arr=['a','b','c','d','a','d']; //要剔除重复元素的源数组
for(var i=0;i<arr.length;i++){
//关键在这里:用arr中的每个元素值做关联数组的“关联名”;同时也用它做关联值!
//循环中,如果遇到arr的某个与前面重复的元素时,它将覆盖那个“关联名”元素!等于剔除了重复元素
obj[arr[i]]=arr[i];
}
//其实到了这里我们已经得到了想要的结果obj[];但由于它是关联数组,取值、运算不很方便,所以就多做一些工作,把它变换为纯数组wantArr[]:
for(var pro in obj){
wantArr.push(obj[pro])
}
alert(wantArr)
</script>
4000个呢?呵呵
人家已经把方法与思路给你了,接下来你应该自己去分析和修改里面的逻辑。
只是照抄别人的代码,你永远都不会进步的。BTW:4楼的方法适用于所有需要检查的对象都是字符串的情况,如果要更加的严谨,还是需要借助数组的遍历。
<script>
var obj=[];
var wantArr=[];
var arr=['a','b','b','d']; //要剔除重复元素的源数组
for(var i=0;i<arr.length;i++){
if(!obj[arr[i]]) obj[arr[i]]=arr[i];
else wantArr.push(arr[i])
}
alert("重复项:"+wantArr)
</script>
楼主,建议你以后多看看12楼的这句话:人家已经把方法与思路给你了,接下来你应该自己去分析和修改里面的逻辑。只是照抄别人的代码,你永远都不会进步的。呵呵
因为,LZ是问:“我想判断一下这些变量都哪些相同”,而不是判断那些变量的值相同。也就是说 ——
有定义: var uh="a",dh="b",lw="c",rw="d",dr="a",hk="c";
请 问:变量uh、dh、lw、rw、dr、hk中有那些相同,
不是问:"a"、"b"、"c"、"d"、"a"、"c"中有那些相同。