2017年6月9日 星期五

排序移除list 內 重復的JSON object =>用雜湊表方法

http://www.csie.ntnu.edu.tw/~u91029/index.html

function dedup(arr) {
 var hashTable = {};

 return arr.filter(function (el) {
  var key = JSON.stringify(el);
  var match = Boolean(hashTable[key]);

  return (match ? false : hashTable[key] = true);
 });
}

var deduped = dedup([
 { a: 1 },
 { a: 1 },
 [ 1, 2 ],
 [ 1, 2 ]
]);

console.log(deduped); // [ {a: 1}, [1, 2] ]
EXT2:
var indexOf = [].indexOf ?
    function indexOf(arr, item){
        return arr.indexOf(item);
    }:
    function indexOf(arr, item){
        for(var i = 0; i < arr.length; i++){
            if(arr[i] === item){
                retrun i;            
            }
        }
        return -1;
    }
    
function distinct(arr){
    var self = arr;
        list = self.concat().sort();
        
    list.sort(function(a, b){
        if(a === b){
            var ind = self.indexOf(arr, a);
            self.splice(ind, 1);
        }
    });
    return self;
}    

沒有留言:

張貼留言