javascript - 合并对象: Problem with comparing and merge two objects in javascript

标签 javascript arrays object

晚安。一些慈善人士帮助我解决了有关 javascript 对象的问题。非常感谢谁能...

var arrA = [
    {language:'php', count_access:5},
    {language:'c', count_access:7}
];

var arrB = [
    {language:'php', count_access:0},
    {language:'c', count_access:0},
    {language:'python', count_access:0},
    {language:'ace', count_access:0},
    {language:'electron', count_access:0},
];

var result = [...arrA, ...arrB].reduce((acc, item) => { 
    return item;
 }) ;

arrA.concat(result)

//How would you do for the output to be

/*[
{language:'php', count_access:5},
{language:'c', count_access:7},
{language:'python', count_access:0},
{language:'ace', count_access:0},
{language:'electron', count_access:0},
]*/

最佳答案

这会起作用,它还会添加匹配语言的计数

var arrA = [
    {language:'php', count:5},
    {language:'c', count:7}
];

var arrB = [
    {language:'php', count:0},
    {language:'c', count:0},
    {language:'python', count:0},
    {language:'ace', count:0},
    {language:'electron', count:0},
];

let result = [...arrA, ...arrB].reduce((acc, item) => {
  let found = acc.find(x => x.language=== item.language);
  if (found) {
    found.count += item.count;
  } else {
    acc.push(Object.assign({},item));
  }
  return acc;
}, [])
console.log(result);

关于javascript - 合并对象: Problem with comparing and merge two objects in javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58600507/

相关文章:

arrays - 如何将 bash 脚本数组中的值递增 1?

java - 字符串文字和对象文字比较

javascript - 在 Meteor 中使用 Facebook 请求对话

javascript - 为什么我在 node.js 中使用 parseInt 会得到奇怪的结果? (与 chrome js 控制台的结果不同)

c++ - 如何对类数组进行排序

python - 平均日期数组计算

javascript - 更新嵌套对象数组

javascript - Canvas 随重力交替形状

javascript - 单击按钮后如何隐藏按钮?

javascript - 无法在 javascript 中调用语义 UI