Как объединить несколько 3D-объектов JSON в JS [или jQuery] - PullRequest
0 голосов
/ 01 октября 2011

Мне нужно объединить 2 (до 6) объектов JSON.

Я получил этот код: http://jsfiddle.net/5Uz27/

Но с помощью этого кода я могу объединить только первый уровень объектов, поэтому более глубокие уровни обычно перезаписываются. Проверьте вывод.

Как я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

jQuery.extend (true, исходный_объект, extension_with);

источник: http://api.jquery.com/jQuery.extend/

1 голос
/ 01 октября 2011

С помощью 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...