您的位置:首页 > 其它

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

2015-08-13 17:28 323 查看
将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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: