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",
    }
]
时间: 2024-08-09 17:39:42

js 对象数组 根据对象中的元素去重的相关文章

JS中:json对象数组按对象属性排序

var array = [ {name: 'a', phone: 1}, {name: 'b', phone: 5}, {name: 'd', phone: 3}, {name: 'c', phone: 4} ] array.sort(getSortFun('desc', 'phone')); function getSortFun(order, sortBy) { var ordAlpah = (order == 'asc') ? '>' : '<'; var sortFun = new F

DOM:文档对象模型 --树模型 文档:标签文档,对象:文档中每个元素对象,模型:抽象化的东西

DOM:文档对象模型 --树模型文档:标签文档,对象:文档中每个元素对象,模型:抽象化的东西 一:window: 属性(值或者子对象):opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null,可以利用这个属性来关闭源窗口. 方法(函数):事件(事先设置好的程序,被触发): 1.window.open("第一部分","第二部分","第三部分","第四部分"): 特征参数: 第一部分:写要

Controller比较两个对象discs、outlets中的元素是否相等。相同则相应的checkbox为checked

比较两个对象discs.outlets中的元素是否相等.相同则相应的checkbox为checked <div id="div1" name="div1" class="area" style="position:relative;"> <c:if test="${!empty outlets}"> <dl> <c:forEach items="${out

C++对象数组与对象指针

(一)对象数组 将具有相同类类型的对象有序地集合在一起便构成了对象数组,以一维对象数组为例,其定义形式为: 类名 对象数组名[]; Point points[100]; 关于对象数组的几点说明: (1)在建立对象数组的时候需要调用构造函数.如果对象数组有100个元素,就需要调用100次构造函数. (2)如果对象数组所属类有带参数的构造函数时,可用初始化列表按顺序调用构造函数,使用复制初始化来初始化每个数组元素. Point A[3]={Point(0,0),Point(1,1),Point(2,

判断数组或者集合中重复元素的个数。

当我们需要对数组或者集合中的元素进行重复元素个数时,我们不妨使用map来完成此操作. 由于map中key是唯一的,所以利用这一特性就可以对数组中重复元素进行统计. java实现代码如下. String[] names={"a","b","a","b","c"}; Map<String,Integer> sameElement=new HashMap<String,Integer>()

数组方法总结 常用数组方法总结 js的数组或对象常用方法总结

js常用数据类型的方法使用归纳 * String---->是一个对象    * 字符串可以看成是字符组成的数组,但是js中没有字符类型 * 字符是一个一个的,在别的语言中字符用一对单引号括起来 * 在js中字符串可以使用单引号也可以使用双引号 * 因为字符串可以看成是数组,所以,可以通过for循环进行遍历 * 字符串特性:不可变性,字符串的值是不能改变 * 字符串的值之所以看起来是改变的,那是因为指向改变了,并不是真的值改变了 * 字符串的常用属性:     * .length------>字

JS对象/数组/识别对象数组

一.对象: 1.对象创建: (1) var obj={}; (2) var obj= new Object();  obj.name="Wang",obj.age=12 (3) Object.create({}); 2.对象访问: (1) obj.a; (2) obj[a];  //a可以是相同的字符串,和数组: 3.对象方法: (1) obj.hasOwnPrototype("prop");    判断对象是否为自身,返回true:如为继承属性,false: (2

【C++】C++自学旅程(9):对象数组和对象指针

耶耶耶,“类”的收官之作! 一.对象数组 对象数组:数组的每一个元素都是一个对象.定义方法: //类名 数组名[长度]; Elec a[2]; 其他跟类的对象.数组元素的使用没有区别.那么数组该怎么初始化呢: //使用构造函数 Elec a[2]= { Elet(111,"ds"...), Elct(154,"fish"...) }; //若对象只有一个参数 Elct a[2]={"ds","fish"}; 二.对象指针 1.

js 对象数组根据对象中的属性排序

function createComparisonFunction(propertyName){ return function(object1,object2){ var value1 = object1[propertyName]; var value2 = object2[propertyName]; if(value1 < value2){ return -1; }else if(value1 > value2){ return 1; }else{ return 0; } }; };