js 数组对象 判断l两个属性值同时相同,另外某个属性值 相加

var arr = [
    {
        class: '1',
        name: 张三,
        sum: 2
    },
    {
        class: '1',
        name: 张三,
        sum: 7
    },
    {      
        class: '1',
        name: 李四,
        sum: 4
    },
    {
        class: '1',
        name: 李四,
        sum: 5
    },
    {
        class: '2',
        name: 李四,
        sum: 6
    },
    {
        class: '2',
        name: 王五,
        sum: 4
    },
]

判断  name和 class  是否都相同  相同  sum值 就相加 

拿到 相加都得 值

var arrcopy = [];

for (var i = 0; i < arr.length; i++) {
    var obj = {
                class: arr[i].class;
                name: arr[i].name;
                sum: arr[i].sum;
            };
    for (var j = 0; j < arr.length; j++) {
        if (arr[i].class == arr[j].class && arr[i].name == arr[j].name && i !== j) {
            obj.sum = obj.sum + arr[j].sum;
        }
    }
    arrcopy.push(obj);
}

console.log(arrcopy);

//再排除重复的

 

用ifilter方法会解决你的问题

麻烦给我点赞!!!老铁666