javascript - 如何在两个对象数组之间推送不存在的数据

标签 javascript arrays loops lodash

我有两个对象数组

首先从数据库中获取一个

const data = [{
    count: 156,
    monthCount: 1,
    year: 2018
  },
  {
    count: 165,
    monthCount: 2,
    year: 2018
  },
  {
    count: 153,
    monthCount: 3,
    year: 2018
  },
  {
    count: 63,
    monthCount: 6,
    year: 2018
  },
  {
    count: 4,
    monthCount: 9,
    year: 2018
  },
  {
    count: 116,
    monthCount: 10,
    year: 2018
  }
]

第二个是我的虚拟数据

const dummyData = [{
    count: 0,
    monthCount: 1,
    year: 2018
  },
  {
    count: 0,
    monthCount: 2,
    year: 2018
  },
  {
    count: 0,
    monthCount: 3,
    year: 2018
  },
  {
    count: 0,
    monthCount: 4,
    year: 2018
  },
  {
    count: 0,
    monthCount: 5,
    year: 2018
  },
  {
    count: 0,
    monthCount: 6,
    year: 2018
  },
  {
    count: 0,
    monthCount: 7,
    year: 2018
  },
  {
    count: 0,
    monthCount: 8,
    year: 2018
  },
  {
    count: 0,
    monthCount: 9,
    year: 2018
  },
  {
    count: 0,
    monthCount: 10,
    year: 2018
  },
  {
    count: 0,
    monthCount: 11,
    year: 2018
  },
  {
    count: 0,
    monthCount: 12,
    year: 2018
  }
]

我需要在我的 data 数组中添加缺失值,以与 dummy 数组的月份进行比较。

我试过使用 lodash 但无法获得我需要的东西。

var diffArr =  _.differenceWith(obj.data, 'monthCount', numberArr, 'monthCount', _.isEqual)

提前谢谢你。

最佳答案

您可以映射您的 dummyData 项,如果在真实数据数组中存在相同 monthCount 的对应项,则替换它们:

const data = [{
    count: 156,
    monthCount: 1,
    year: 2018
  },
  {
    count: 165,
    monthCount: 2,
    year: 2018
  },
  {
    count: 153,
    monthCount: 3,
    year: 2018
  },
  {
    count: 63,
    monthCount: 6,
    year: 2018
  },
  {
    count: 4,
    monthCount: 9,
    year: 2018
  },
  {
    count: 116,
    monthCount: 10,
    year: 2018
  }
]

const dummyData = [{
    count: 0,
    monthCount: 1,
    year: 2018
  },
  {
    count: 0,
    monthCount: 2,
    year: 2018
  },
  {
    count: 0,
    monthCount: 3,
    year: 2018
  },
  {
    count: 0,
    monthCount: 4,
    year: 2018
  },
  {
    count: 0,
    monthCount: 5,
    year: 2018
  },
  {
    count: 0,
    monthCount: 6,
    year: 2018
  },
  {
    count: 0,
    monthCount: 7,
    year: 2018
  },
  {
    count: 0,
    monthCount: 8,
    year: 2018
  },
  {
    count: 0,
    monthCount: 9,
    year: 2018
  },
  {
    count: 0,
    monthCount: 10,
    year: 2018
  },
  {
    count: 0,
    monthCount: 11,
    year: 2018
  },
  {
    count: 0,
    monthCount: 12,
    year: 2018
  }
]

const allData = dummyData.map(dummyItem => (
  data.find(item => item.monthCount === dummyItem.monthCount) || dummyItem
))

console.log(allData);

关于javascript - 如何在两个对象数组之间推送不存在的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58461822/

相关文章:

javascript - 传递 onChange 函数已参数复选框

Javascript 闭包

javascript - 我的生日悖论事件模拟器在 JavaScript 中运行不佳

计算数组中字符出现的次数

javascript - 如何在 JavaScript 中构建循环?

c++ - 遍历常量枚举#define

JavaScript 高分表

javascript - 检测泛型类型参数是否具有 id 属性?

JavaScript 数组和 JSON

javascript - Angular : Unable to find the index of an array