Как удалить из объекта пустые свойства или свойства со значениями приводимыми к пустым?
Object.filter = function( obj, filtercheck) {
    let result = {}; 
    Object.keys(obj).forEach((key) => { if (filtercheck(obj[key])) result[key] = obj[key]; })
    return result;
};

let carsFiltered = Object.filter(cars, filterFunc);
где filterFunc — ваша функция проверки, в которую передаётся только значение конкретного ключа
Object.entries(cars).map(a=>Object.entries(a[1]).filter(b=>b[1].length).length?a:delete cars[a[0]]);
Не очень-то красивый, но однострочник.
Если нет свойств во вложенном объекте или они пустые, то свойство удаляется. Могу дописать, чтобы удаляло те свойства, в значениях которых есть хотя бы одно пустое свойство, код это особо не увеличит