怎样把数组中重复的数去掉

hblhaa 2010-10-29 09:58:51
比如:
var arr = [1,2,3,4,5,6,7,8,4,3,2,5,6,23,4,2];
过滤后[1,2,3,4,5,6,7,8,23];
...全文
36 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2010-10-29
  • 打赏
  • 举报
回复
Array.prototype.unique = function()
{
var a = {};
for(var i=0; i<this.length; i++)
{
if(typeof a[this[i]] == "undefined")
a[this[i]] = 1;
}
this.length = 0;
for(var i in a)
this[this.length] = i;
return this;
}
alert([1,2,3,4,5,6,7,8,4,3,2,5,6,23,4,2].unique());
hblhaa 2010-10-29
  • 打赏
  • 举报
回复
谢谢大家,楼上的不是JavaScript,一楼的很好。
amani11 2010-10-29
  • 打赏
  • 举报
回复
晕,看错地方了

PHP的,不好意思啊,无视无视,
amani11 2010-10-29
  • 打赏
  • 举报
回复
有适用条件的做法,就是每个值必须是可以作为数组下标的



$arr = array(1,2,3,4,5,6,7,8,4,3,2,5,6,23,4,2);
$arr = array_keys(array_flip($arr));
print_r($arr);

zhangshaolongjj 2010-10-29
  • 打赏
  • 举报
回复
<script type="text/javascript" >
function OArray(arr){
var obj = {};
var a = [];
var nums = {};
for(var i=0;i<arr.length; i++){
if(typeof arr[i] == "string"){
if(arr[i] != obj[arr[i]]){
a.push(arr[i]);
obj[arr[i]] = arr[i];
}
}else {
if(nums[arr[i]] !== arr[i]){
nums[arr[i]] = arr[i];
a.push(arr[i]);
}
}
}
return a;
}
function AArray(arr){
var obj = [];
var a = [];
ll:
for(var i=0;i<arr.length;i++){
for(var j=0;j<obj.length;j++){
if(arr[i] == obj[j])
continue ll;
}
obj.push(arr[i]);
}
return obj;
}
alert(AArray([1,2,3,5,"1",2,6]));
alert(OArray([1,2,3,5,"1",2,6]));
</script>
这个是我以前做的,那个AArray可以过滤纯数字的,那个OArray比他要强些,能区分数字1和字符串"1".

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧