I want to group by that array to another array by name.
var cars = [
    {
        'name': 'audi',
        'model': 'r8',
        'year': '2012'
    }, {
        'name': 'audi',
        'model': 'rs5',
        'year': '2013'
    }, {
        'name': 'ford',
        'model': 'mustang',
        'year': '2012'
    }, {
        'name': 'ford',
        'model': 'fusion',
        'year': '2015'
    }
];
I expect that result (i omitted name inside items objects but I don't mind if you leave it there, if it would be to complicated (and slower):
var cars = [
 {
    name: 'audi',
    items: [
        {
            'model': 'r8',
            'year': '2012'
        }, {
            'model': 'rs5',
            'year': '2013'
        },
    ], 
  },
  {
    name: 'ford'
    items: [
        {
            'model': 'mustang',
            'year': '2012'
        }, {
            'model': 'fusion',
            'year': '2015'
        }
    ]
  }   
]
I was trying to achive that with reduce
let group = cars.reduce((r, a) => {
  r[a.name] = [...r[a.name] || [], a];
  return r;
 }, {});
but it's far from my expectation, because haven't object with name property, and without items array.
 
     
    