С помощью jQuery вы можете использовать $.extend()
, чтобы выполнить «глубокое» / рекурсивное слияние объектов, передав в качестве первого аргумента true
.
Вот как это может работать в вашем примере:
// turn the strings into objects
var pref_array = $.map(json_holder, JSON.parse);
// add the deep=true argument
pref_array.unshift(true);
// now do a deep extend, passing the array as arguments
var prefs = $.extend.apply(null, pref_array );
Это может быть немного тупо (вы могли бы сделать это еще более, но более жестким, установив pref_array
в [true].concat($.map(json_holder, JSON.parse))
), но это позволяет избежать неловкого цикла for
(который можетя думаю, что это личное предпочтение).
Работа jsFiddle здесь: http://jsfiddle.net/e6bnU/