[{ "car_brand": "audi", "model": { "model_1": "audi_tt" } }, { "car_brand": "audi", "model": { "model_1": "audi_r8" } } ]
в любом случае конвертируется в
[{ "car_brand": "audi", "model": [{ "model_1": "audi_tt" }, { "model_1": "audi_r8" } ] }]
Сначала вы можете использовать _.groupBy() для группировки каждого объекта, а затем _.map() каждой группы в объекте в массив объектов. Каждый сопоставленный объект использует ключ из сгруппированного объекта в качестве car_brand, а также использует сопоставленную версию массива сгруппированных значений в качестве свойства model:
_.groupBy()
_.map()
car_brand
model
const arr = [{ "car_brand": "audi", "model": { "model_1": "audi_tt" } }, { "car_brand": "audi", "model": { "model_1": "audi_r8" } } ]; const group = _.flow( inp => _.groupBy(inp, 'car_brand'), gr => _.map(gr, (arr, card_brand) => ({ card_brand, model: _.map(arr, 'model') })) ); console.log(group(arr));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>