2013-11-08 4 views
1

Я новичок в JS, и я пытаюсь выяснить, как я могу взять список хэшей и преобразовать их в один хеш. Например,Создайте хэш из списка хэшей

lst = [{"a": 10, "b": 2}, {"a": 10, "c": 5}, {"a": 10, "b": 2, "d": 20}] 

к:

hash = {"a": 10, "b": 2, "c": 5, "d": 20} 

Что такое лучший способ сделать это? Я пытался каким-то образом использовать map нижнего подчеркивания, но я не уверен, что это лучший подход.

+1

Как правило, '_.extend', но что, если значения не согласны? Например: '[{a: 10}, {a: 20, b: 2}]' –

ответ

2

Вы можете использовать reduce:

var hash = lst.reduce(function(r,o){ for (var k in o) r[k]=o[k]; return r }, {}); 
+1

+1 моя черта, которая была очень быстрой. возможно ли, чтобы рабочая скрипка увидела в действии? – Praveen

+1

Примечание: поскольку Google приостановил поддержку IE9 в GMail, я могу остановить поддержку IE8 в SO;) –

+1

http://jsfiddle.net/27pQb/ –

Смежные вопросы