Объединить объекты JS без перезаписи

Предположим, у вас есть два объекта:

var foo = {
    a : 1,
    b : 2
};

var bar = {
    a : 3,
    b : 4
}

Как лучше всего их объединить (и разрешить глубокое объединение) для создания этого:

var foobar = {
    a : [1, 3],
    b : [2, 4]
}

Изменить для пояснения вопроса: В идеале, в случае существующего свойства в одном, а не в другом, я бы ожидал массив, который еще предстоит создать для целей нормализации и для дальнейшего уменьшения карты, однако ответов, которые я вижу ниже, более чем достаточно. Для целей этого упражнения я искал только строковые или числовые слияния, поэтому я не рассматривал все возможные ситуативные случаи. Если бы вы приставили пистолет к моей голове и попросили меня сделать выбор, я бы сказал, что по умолчанию используются массивы.

Спасибо всем за ваш вклад.

8
задан Zachary Murray 26 September 2011 в 09:54
поделиться