从重复值中筛选具有唯一值的对象数组
Filter array of object with unique value from duplicate values
var Error-dictionary = [
{
code:599,
MSG:'unknown'
},
{
code:404,
MSG:'not found'
},
{
code:599,
MSG:'unknown'
}
]
我想要这样的东西:
[
{
code : 599,
count:2,
MSG : 'unknown',
code :404,
count:1,
MSG : 'not found'
}
]
和这个需要推入$scope.alerts
作为味精
错误码和MSG是动态的
可以通过使用underscore.js获得对象数组中特定属性的编号。很好很简单!!
<script src="http://underscorejs.org/underscore-min.js"></script>
<script>
window.onload = function () {
var dict = [
{code: 599, MSG: 'unknown' },
{code: 404, MSG: 'not found'},
{code: 599, MSG: 'unknown'}
];
var res = _.groupBy(dict, function (d) {
return d.code;
});
var dictArr = [];
for(var key in res) {
var code = key;
var value = res[key];
var MSG = value[0].MSG;
var count = value.length;
dictArr.push({ code : code, MSG: MSG, count: count });
};
console.log(dictArr);
};
</script>
创建一个使用错误代码和消息作为键的临时对象。然后将该临时对象映射到输出数组
var tmp = {}, res =[];
data.forEach(function (item) {
var tmpKey = item.code + item.MSG;
if (!tmp.hasOwnProperty(tmpKey)) {
tmp[tmpKey] = angular.copy(item);
tmp[tmpKey].count = 0;
}
tmp[tmpKey].count++;
});
for( var key in tmp){
res.push(tmp[key];
}
$scope.errors = res;
console.log($scope.errors);
相关文章:
- 如何从数组中查找唯一对象
- 基于单个属性从数组中获取唯一对象
- 将唯一对象推送到JavaScript数组
- j根据特定对象属性查询唯一对象
- 按属性创建唯一对象的数组
- 使用带有对象的for循环打印出每个唯一对象的属性
- Three.js r73-将多个对象作为唯一对象来回旋转
- 通过比较和推送唯一对象来创建新的对象数组
- 仅向数组中添加唯一对象
- 如何通过使用Javascript比较两组数组来获得唯一对象
- 在JavaScript中只向数组添加唯一对象
- 使用对象作为键(不是字符串而是唯一对象)的关联映射的javascript方法是什么?
- Firebase push -删除唯一对象并插入新对象(基本上覆盖内容)
- 获取用户输入以创建唯一对象
- 是否有可能在不使用唯一对象属性的情况下区分两个对象?
- Javascript从object中创建唯一对象数组
- 唯一对象字面值键- javascript
- js获取一个唯一对象的数组
- 在javascript数组中查找唯一对象的最快速方法
- 将两个唯一对象推到一个空数组中会产生一个包含两个等效对象的数组