I am trying to merge several JSON objects into one, but I am having a hard time figuring out, how to get the desired result.
I am not very good at creating complex for-loops, which is preventing me from succeeding.
Sample area1.json
        {
            data: [
                {
                    date: "2018031300",
                    p: [
                        {
                            lon: -5.555,
                            precip-intensity: 0,
                            wind-dir: 90.25001,
                            temperature: 3.7924042,
                            wind-speed: 8.692518,
                            weather-symbol: 3,
                            pressure-sealevel: 100247.5
                        },
                        {
                            lon: -4.444,
                            precip-intensity: 0,
                            wind-dir: 89.87501,
                            temperature: 3.1674042,
                            wind-speed: 8.731581,
                            weather-symbol: 3,
                            pressure-sealevel: 100238.5
                        }
                    ]
                },
                {
                    date: "2018031301",
                    p: [
                        {
                            lon: -5.555,
                            precip-intensity: 0.00390625,
                            wind-dir: 97.500015,
                            temperature: 3.6734467,
                            wind-speed: 8.874923,
                            weather-symbol: 3,
                            pressure-sealevel: 100265.625
                        },
                        {
                            lon: -4.444,
                            precip-intensity: 0.00390625,
                            wind-dir: 96.000015,
                            temperature: 3.1109467,
                            wind-speed: 9.066329,
                            weather-symbol: 3,
                            pressure-sealevel: 100260.625
                        }       
                    ]
                }
            ]
        }
Sample area2.json
        {
            data: [
                {
                    date: "2018031300",
                    p: [
                        {
                            lon: -7.777,
                            precip-intensity: 0.0078125,
                            wind-dir: 96.25001,
                            temperature: 4.792404,
                            wind-speed: 10.200331,
                            weather-symbol: 3,
                            pressure-sealevel: 100237
                        },
                        {
                            lon: -6.666,
                            precip-intensity: 0,
                            wind-dir: 86.50001,
                            temperature: 4.167404,
                            wind-speed: 11.106581,
                            weather-symbol: 3,
                            pressure-sealevel: 100243
                        }
                        ]
                },
                {
                    date: "2018031301",
                    p: [
                        {
                            lon: -7.777,
                            precip-intensity: 0.03125,
                            wind-dir: 92.625015,
                            temperature: 4.7359467,
                            wind-speed: 11.066329,
                            weather-symbol: 3,
                            pressure-sealevel: 100242.125
                        },
                        {
                            lon: -6.666,
                            precip-intensity: 0.0078125,
                            wind-dir: 90.750015,
                            temperature: 4.2359467,
                            wind-speed: 11.24211,
                            weather-symbol: 3,
                            pressure-sealevel: 100269.625
                        }           
                        ]
                }
                ]
        }
This would be desired result
Combined area3.json
        {
            data: [
                {
                    date: "2018031300",
                    p: [
                        {
                            lon: -7.777,
                            precip-intensity: 0.0078125,
                            wind-dir: 96.25001,
                            temperature: 4.792404,
                            wind-speed: 10.200331,
                            weather-symbol: 3,
                            pressure-sealevel: 100237
                        },
                        {
                            lon: -6.666,
                            precip-intensity: 0,
                            wind-dir: 86.50001,
                            temperature: 4.167404,
                            wind-speed: 11.106581,
                            weather-symbol: 3,
                            pressure-sealevel: 100243
                        },
                        {
                            lon: -5.555,
                            precip-intensity: 0,
                            wind-dir: 90.25001,
                            temperature: 3.7924042,
                            wind-speed: 8.692518,
                            weather-symbol: 3,
                            pressure-sealevel: 100247.5
                        },
                        {
                            lon: -4.444,
                            precip-intensity: 0,
                            wind-dir: 89.87501,
                            temperature: 3.1674042,
                            wind-speed: 8.731581,
                            weather-symbol: 3,
                            pressure-sealevel: 100238.5
                        }
                    ]
                },
                {
                    date: "2018031301",
                    p: [
                        {
                            lon: -7.777,
                            precip-intensity: 0.03125,
                            wind-dir: 92.625015,
                            temperature: 4.7359467,
                            wind-speed: 11.066329,
                            weather-symbol: 3,
                            pressure-sealevel: 100242.125
                        },
                        {
                            lon: -6.666,
                            precip-intensity: 0.0078125,
                            wind-dir: 90.750015,
                            temperature: 4.2359467,
                            wind-speed: 11.24211,
                            weather-symbol: 3,
                            pressure-sealevel: 100269.625
                        },          
                        {
                            lon: -5.555,
                            precip-intensity: 0.00390625,
                            wind-dir: 97.500015,
                            temperature: 3.6734467,
                            wind-speed: 8.874923,
                            weather-symbol: 3,
                            pressure-sealevel: 100265.625
                        },
                        {
                            lon: -4.444,
                            precip-intensity: 0.00390625,
                            wind-dir: 96.000015,
                            temperature: 3.1109467,
                            wind-speed: 9.066329,
                            weather-symbol: 3,
                            pressure-sealevel: 100260.625
                        }       
                    ]
                }
            ]
        }
The answer on this thread is almost there... Merge JSON Data by Key
I tried with this code...
        function mergeJson(target) {
            for (var argi = 1; argi < arguments.length; argi++) {
                var source = arguments[argi];
                for (var key in source) {
                    if (!(key in target)) {
                        target[key] = [];
                    }
                    for (var i = 0; i < source[key].length; i++) {
                        target[key].push(source[key][i]);
                    }
                }
            }
            return target;
        }
        var finalJson = mergeJson({}, area1, area2);
This gives me two arrays...
 
    