Вот универсальный и расширяемый вариант:
var auto = [
{
marka: "BMW",
model: "4k",
cuzov: "A",
},
{
marka: "Merc",
model: "4k",
cuzov: "B",
},
{
marka: "Audi",
model: "3k",
cuzov: "C",
},
{
marka: "Toyota",
model: "1k",
cuzov: "D",
},
{
marka: "Lexus",
model: "2k",
cuzov: "E",
},
{
marka: "Rang",
model: "3k",
cuzov: "F",
},
{
marka: "BMW",
model: "4k",
cuzov: "G",
},
{
marka: "BMW",
model: "2k",
cuzov: "Y",
},
{
marka: "Audi",
model: "3k",
cuzov: "U",
}
];
var marka = ["Audi", "Rang", "Merc"];
var model = ["4k", "2k", "3k"];
var cuzov = [];
var params = { marka, model, cuzov };
var activeKeys = Object.keys(params).filter(key => params[key].length);
var rez1 = auto.filter(x => activeKeys.every(key => params[key].includes(x[key])) );
console.log(rez1);
Можно расширять объект параметров фильтрации. Параметры без элементов, отфильтровываются до этапа сравнения.