javascript - 使用 JavaScript 自定义比较函数合并两个对象数组

标签 javascript arrays object merge sum

我有两个对象数组,例如:

var A = [{title:"name1",count:5},{title:"name2",count:1},{title:"name3",count:3}];

和:

var B = [{title:"name2",count:7},{title:"name3",count:2},{title:"name4",count:3},{title:"name5",count:8}];

我需要将这两个数组合并到一个数组中,并在“title”属性相同时对返回数组中的“count”值求和: 最后的答案必须是:

[{title:"name1",count:5},{title:"name2",count:8},{title:"name3",count:5},{title:"name4",count:3},{title:"name5",count:8}]

我该怎么做???

最佳答案

您可以使用Array#forEachArray#some取得成果

var M = A.concat(B)

var C = [];

M.forEach(function(a) {
    var index;
    if (C.some(function(c, i) { index = i; return a.title == c.title; })) {
        C[index].count += a.count;
    } else {
        C.push(a);
    }
});

console.log(C); // as you expect

关于javascript - 使用 JavaScript 自定义比较函数合并两个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35783595/

相关文章:

ios - 制作 UIApplication(AppDelegate) 嵌入对象

javascript - 获取对象的属性名称

javascript - 获取除 first 和 last 之外的所有数组元素

javascript - 在 Angular 6 react 形式的单选按钮的基础上禁用文本区域

javascript - 当某人以昵称 IRC 加入时

c++ - 将文件读入对象数组C++

javascript - 选择下拉列表项jquery的值

python - 在Python中使用条件控制变量过滤数组以创建numpy矩阵

C++ 段错误 std::array

python - Numpy 数组到 base64 并返回到 Numpy 数组 - Python