删除数组中重复项(uniq)

来自于:http://www.planabc.net/2009/12/26/array_uniq/

ExpandedBlockStart.gif 代码
TUI.unique  =   function ( array ) {
var  ret  =  [], record  =  {}, it, tmp;
var  type  =  {
“number”: 
function (n){  return  “_TUI_num”  +  n; },
“string”: 
function (n){  return  n; },
boolean ”:  function (n){  return  “_TUI_boolean”  +  n; },
“object”: 
function (n){  return  n  ===   null   ?  “TUI_null” : $.data(n); },
“undefined”: 
function (n){  return  “_TUI_undefined”; }
};
for  (  var  i  =   0 , length  =  array.length; i  <  length; i ++  ) {
it 
=  tmp  =  array[i];
tmp 
=  type[ typeof  it](it);
if ! record[tmp] ) {
ret.push(it);
record[tmp] 
=   true ;
}
}
return  ret;
};

测试:

var  b = [ 1 , 3 , 5 ];
TUI.unique([
1 , 3 , 4 , 5 , null , false ,$( " .pack " )[ 0 ],b, " ab " , " cc " ,[ 1 , 3 ], 3 , 6 ,b, 1 , false , null , " null " , "" , " false " , "" ,$( " .pack " )[ 0 ], " cc " ])


var  uniq  =   function  (arr) {
    
var  a  =  [],
        o 
=  {},
        i,
        v,
        len 
=  arr.length;

    
if  (len  <   2 ) {
        
return  arr;
    }

    
for  (i  =   0 ; i  <  len; i ++ ) {
        v 
=  arr[i];
        
if  (o[v]  !==   1 ) {
            a.push(v);
            o[v] 
=   1 ;
        }
    }

    
return  a;
}


转载于:https://www.cnblogs.com/jikey/archive/2010/05/06/1729160.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值