js 對象數組 根據對象中的元素去重


<script type="text/javascript">
//根據 sys_time 和 loc_time 去重

    var tmp = 
        [
            {
                "id":1,
                "sys_time": "2015-03-09 15:15:08",  //與id為2的重復
                "loc_time": "2015-03-09 15:16:38"
            }, 
            {
                "id":2,
                "sys_time": "2015-03-09 15:15:08", 
                "loc_time": "2015-03-09 15:15:38",    //與id為3的重復(但是因為sys_time 已經和id為1的重復了 , 實際上不會再參與 loc_time的去重)
            }, 
            {
                "id":3,
                "sys_time": "2015-03-09 15:16:08", 
                "loc_time": "2015-03-09 15:15:38", 
                
            },
            {
                "id":4,
                "sys_time": "2015-03-09 15:17:08", 
                "loc_time": "2015-03-09 15:17:38", 
            }
        ]
        
        
    // for(n in tmp){
    //     tmp[n].sys_time = new Date(tmp[n].sys_time).getTime();
    // }
    
    var result = [], hash = {};  hash_ = {}
    for (var i = 0; i<tmp.length; i++) {
        var elem = tmp[i].sys_time; 
        var elem_ = tmp[i].loc_time; 
        if (!hash[elem]) {
            if (!hash_[elem_]) {
                result.push(tmp[i]);
                hash_[elem_] = true;
            };
            hash[elem] = true;
        }
    }
    
    console.log(result)

</script>

結果:

[
    {
        "id":1,
        "sys_time": "2015-03-09 15:15:08",
        "loc_time": "2015-03-09 15:16:38"
    }, 
    {
        "id":3,
        "sys_time": "2015-03-09 15:16:08", 
        "loc_time": "2015-03-09 15:15:38", 
        
    },
    {
        "id":4,
        "sys_time": "2015-03-09 15:17:08", 
        "loc_time": "2015-03-09 15:17:38", 
    }
]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM