Есть три массива, первый это время, тут главное hours (car, bike - всегда нули).
Второй и третий массив это данные которые приходят порознь, два сразу только для примера.
let hours = [
{ "hour":0, 'car':0, 'bike': 0},
{ "hour":1, 'car':0, 'bike': 0},
{ "hour":2, 'car':0, 'bike': 0},
{ "hour":3, 'car':0, 'bike': 0},
{ "hour":4, 'car':0, 'bike': 0},
{ "hour":5, 'car':0, 'bike': 0},
{ "hour":6, 'car':0, 'bike': 0},
{ "hour":7, 'car':0, 'bike': 0},
];
let first = [
{ "hour":5, 'car':10, 'bike': 10},
{ "hour":8, 'car':20, 'bike': 0},
{ "hour":9, 'car':30, 'bike': 0},
{ "hour":10, 'car':40, 'bike': 0},
];
let second = [
{ "hour":0, 'car':11, 'bike': 12},
{ "hour":7, 'car':15, 'bike': 25},
{ "hour":8, 'car':20, 'bike': 30},
{ "hour":9, 'car':10, 'bike': 30},
{ "hour":10, 'car':120, 'bike': 140},
];
Нужно объединить массив времени с другим массивом, добавив недостающие данные:
// hours + first
first = [
// в first отсутствует hour:0,1,2,3,4, значит нужно добавить с массива hours
{ "hour":0, 'car':0, 'bike': 0},
{ "hour":1, 'car':0, 'bike': 0},
{ "hour":2, 'car':0, 'bike': 0},
{ "hour":3, 'car':0, 'bike': 0},
{ "hour":4, 'car':0, 'bike': 0},
// дальше добавляем то что было в first
{ "hour":5, 'car':10, 'bike': 10},
// с hours, потому что в first нету 6,7
{ "hour":6, 'car':0, 'bike': 0},
{ "hour":7, 'car':0, 'bike': 0},
{ "hour":8, 'car':20, 'bike': 0},
{ "hour":9, 'car':30, 'bike': 0},
{ "hour":10, 'car':40, 'bike': 0},
];
// hours + second:
second = [
// Данные с second
{ "hour":0, 'car':11, 'bike': 12},
// Данные с hours
{ "hour":1, 'car':0, 'bike': 0},
{ "hour":2, 'car':0, 'bike': 0},
{ "hour":3, 'car':0, 'bike': 0},
{ "hour":4, 'car':0, 'bike': 0},
{ "hour":5, 'car':0, 'bike': 0},
{ "hour":6, 'car':0, 'bike': 0},
// Данные с second должны затереть данные с нулями из hours
{ "hour":7, 'car':15, 'bike': 25},
{ "hour":8, 'car':20, 'bike': 30},
{ "hour":9, 'car':10, 'bike': 30},
{ "hour":10, 'car':120, 'bike': 140},
];