В js у массивов есть метод
.reduce. В принципе, такой метод есть и в Lo-Dash. Наверное, работает похоже. С нативным методом выглядит так:
arr = arr.reduce(function (array, item) {
return array.concat( item.keys.map(convert, item) );
function convert(key) {
return { key: key, generator: this.generator };
}
}, []);