2 wwdd12391 wwdd12391 于 2016.03.24 20:03 提问

js 怎样去除数组重复项

var arr=[
{a:3,b:4,c:5},
{a:4,b:5,c:6},
{a:3,b:4,c:5},
{a:2,b:4,c:5}
]
将数组的重复项去掉:
var arr=[
{a:3,b:4,c:5},
{a:4,b:5,c:6},
{a:2,b:4,c:5}
]

1个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.03.24 20:51
已采纳
 <script>
function equals( x, y ) {
        for ( var p in x ) {
            if ( x.hasOwnProperty( p ) ) {
                if ( ! y.hasOwnProperty( p ) ) {
                    return false;
                }
                if ( x[ p ] !== y[ p ] ) {
                    return false;
                }
            }
        } 
        for ( p in y ) {
            if ( y.hasOwnProperty( p ) && ! x.hasOwnProperty( p ) ) {
                return false;
            }
        }
        return true;
    };

var arr=[
{a:3,b:4,c:5},
{a:4,b:5,c:6},
{a:3,b:4,c:5},
{a:2,b:4,c:5}
]
for(var i=arr.length-1;i>=0;i--){
   var obj1 = arr[i];
   for(var j=i-1;j>=0;j--){
      var obj2 = arr[j];
      if(equals(obj1,obj2)){
         arr.splice(i,1);
         break;
      }
   }
}
</script>
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!