我有两个对象数组
首先从数据库中获取一个
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/