Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript对象数组中查找重复项_Javascript_Jquery - Fatal编程技术网

在javascript对象数组中查找重复项

在javascript对象数组中查找重复项,javascript,jquery,Javascript,Jquery,我有一个如下所示的对象数组: {value: 20, color: 'F88C00'}, {value: 40, color: 'D8605F'}, {value: 20, color: '72C380'}, {value: 20, color: '2C7282'}, {value: 20, color: '72C380'} 我想使用javascript/jquery循环检查

我有一个如下所示的对象数组:

            {value: 20, color: 'F88C00'},
            {value: 40, color: 'D8605F'},
            {value: 20, color: '72C380'},
            {value: 20, color: '2C7282'},
            {value: 20, color: '72C380'}
我想使用javascript/jquery循环检查颜色列中是否有重复项,如果有重复项,这里“72C380”出现两次。然后应该只有一个条目,但它们的值应该求和

期望输出:

            {value: 20, color: 'F88C00'},
            {value: 40, color: 'D8605F'},
            **{value: 40, color: '72C380'},**
            {value: 20, color: '2C7282'}

我知道如何在python中实现这一点,但不是JS,您可以使用这样的临时映射

var array = [{
    value: 20,
    color: 'F88C00'
}, {
    value: 40,
    color: 'D8605F'
}, {
    value: 20,
    color: '72C380'
}, {
    value: 20,
    color: '2C7282'
}, {
    value: 20,
    color: '72C380'
}];

var op = [],
    map = {}, it, item;
for (var i = 0; i < array.length; i++) {
    it = array[i];
    item = map[it.color];
    if (item) {
        item.value += it.value;
    } else {
        map[it.color] = item = {
            value: it.value,
            color: it.color
        };
        op.push(item);
    }
}
console.log(op)
var数组=[{
价值:20,
颜色:“F88C00”
}, {
价值:40,
颜色:“D8605F”
}, {
价值:20,
颜色:“72C380”
}, {
价值:20,
颜色:“2C7282”
}, {
价值:20,
颜色:“72C380”
}];
var op=[],
map={},it,item;
对于(var i=0;i
演示:

控制台it

var collection = [{value: 20, color: 'F88C00'},
            {value: 40, color: 'D8605F'},
            {value: 20, color: '72C380'},
            {value: 20, color: '2C7282'},
            {value: 20, color: '72C380'}];


var colors = [];
var result = collection;
$.each(result, function(i, item){ 
  if(colors.indexOf(item.color)!= -1){ 
      $.each(result,function(f, find){
        if(find.color == item.color){
          result[f].value += item.value;
        }
      })
      delete result[i];
  }else{
     colors.push(item.color);  
  } 
})
var colors = [];
console.log(result);

是否要删除它?我要删除重复的,但要添加upp值