combinar matriz de objetos por clave

Estoy tratando de combinar / fusionar 2 matrices de objetos por clave en mi id de caso.

Objetivo:

Espero resultados donde tendría una matriz que contiene todos los objetos con ids 1,2,3,4 como por ejemploEl orden de fusión no debería afectar el número de objetos en el resultado, por ejemplocombine(arr1,arr2) ocombine(arr2,arr1) debe tener una matriz con el mismo número de objetosEl orden de fusión solo puede afectar el objeto resultante, por ejemplo, en caso decombine(arr1,arr2) clave arr2, el par de valores puede anular la clave arr1, los valores al igual que deep jquery extienden $ .extend (verdadero, arr1ObJ, arr2ObJ);

JSFIDDLE:https://jsfiddle.net/bababalcksheep/u2c05nyj/

Data de muestra:

var arr1 = [{
  id: 1,
  name: "fred",
  title: "boss"
}, {
  id: 2,
  name: "jim",
  title: "nobody"
}, {
  id: 3,
  name: "bob",
  title: "dancer"
}];
var arr2 = [{
  id: 1,
  wage: "300",
  rate: "day"
}, {
  id: 2,
  wage: "10",
  rate: "hour"
}, {
  id: 4,
  wage: "500",
  rate: "week"
}];
var Result = [{
  "id": 1,
  "name": "fred",
  "title": "boss",
  "wage": "300",
  "rate": "day"
}, {
  "id": 2,
  "name": "jim",
  "title": "nobody",
  "wage": "10",
  "rate": "hour"
}, {
  id: 3,
  name: "bob",
  title: "dancer" 
}, {
  id: 4,
  wage: "500",
  rate: "week"
}];

Respuestas a la pregunta(2)

Su respuesta a la pregunta