Fazendo um "Diff" em uma matriz associativa em javascript / jQuery?

Se eu tiver duas matrizes associativas, qual seria a maneira mais eficiente de diferenciar seus valores?

Por exemplo, dado:

  array1 = {
    foreground: 'red',
    shape: 'circle',
    background: 'yellow'
  };

  array2 = {
    foreground: 'red',
    shape: 'square',
    angle: '90',
    background: 'yellow'
  };

Como eu verificaria um contra o outro, para que os itensausência de ou adicional são a matriz resultante. Nesse caso, se eu quisesse comparar o array1 dentro do array2, ele retornaria:

array3 = {shape: 'circle'}

Embora se eu comparasse o array2 no array1, ele retornaria:

array3 = {shape: 'square', angle: '90'}

Agradeço antecipadamente por sua ajuda!

questionAnswers(5)

yourAnswerToTheQuestion