JSFiddle - React, Tailwind, and code Playground

JavaScript

var first = [
    { id: 1, name: 'first' },
    { id: 2, name: 'second' },
    { id: 3, name: 'third' }
]

var second = [
    { id: 2, filed: 'foo2' },
    { id: 3, field: 'foo3' },
    { id: 4, field: 'foo4' }
]

var third = [
    { id: 2, data: 'some2' },
    { id: 4, data: 'some4' },
    { id: 6, data: 'some6' }
]

function mergeArrays(){
    var keys = {};
    //save all existed keys
    for(var i=arguments.length;--i;){
		for(var j=arguments[i].length;--j;){
			for(var key in arguments[i][j]){
				keys[key] = true;
			}
		}
    }

    var res = [];
    for(var i=arguments.length;--i;){
		for(var j=arguments[i].length;--j;){
			//set clone of object
			var clone = JSON.parse(JSON.stringify(arguments[i][j]));
			for(var key in keys){
                if(!(key in clone)){
                    clone[key] = undefined;
				}
			}
			res.push(clone);
		}
    }

    return res;
}

console.log(mergeArrays(first, second, third));