将对象里属性值相同的元素放到同一容器里

来源:互联网 发布:链传动计算软件 编辑:程序博客网 时间:2024/06/06 11:38

将arr对象里面Name对应的值相同的对象放到同一容器里,代码如下所示:

var arr = [{"Name" : "aaa","Data" : "2015-08-01"}, {"Name" : "bbb","Data" : "2015-08-01"}, {"Name" : "ccc","Data" : "2015-08-01" },{"Name" : "aaa","Data" : "2015-08-02" },{"Name" : "aaa","Data" : "2015-08-03" },{"Name" : "aaa","Data" : "2015-08-04" }, {"Name" : "bbb","Data" : "2015-08-02"}, {"Name" : "ccc","Data" : "2015-08-02" }]var ret = (function(ret, arr) {    var tmp = {};    arr.forEach(function(item, i, arr) {        if(!tmp[item.Name]) {                       child = arr.filter(function(v, i) {        return v.Name == item.Name;        });        child.length > 1 ? ret.push(child) : ret.push(child.pop());        tmp[item.Name] = 1;      }    });    return ret;})([], arr);console.log(ret);


0 0
原创粉丝点击