Всем привет! Пытаюсь понять, как наиболее правильно осуществлять поиск по массиву объектов. В коде ниже два варианта, оба работают, но что-то мне подсказывает что есть более оптимальные варианты. С map и reduce еще не пробовал, у меня с ними что-то слоджности))
Буду очень благодарен за предложенные другие варианты, и чем они лучше представленных
let filter = false;
let products = [
{vid:"Квадрат нержавеющий", size:"150", type:"06ХН28МДТ",price:1200},
{vid:"Круг нержавеющий", size:"11", type:"ФБ123ЧВЯ",price:300},
{vid:"Лист нержавеющий", size:"15", type:"ZAQ987",price:2500}
];
let vidValue = 'Квадрат нержавеющий';
let sizeValue = "150";
let typeValue = "06ХН28МДТ";
let priceValue = 1200;
for (let i = 0; i < 6; i++) {
// Первый вариант
filter = products.filter((o, i) => {
if (o.vid != vidValue) { return false; }
if (o.size != sizeValue) { return false; }
if (o.type != typeValue) { return false; }
if (o.price != priceValue) { return false; }
return true;
});
filter.length ? console.log('В строке ' + i + ' совпадение ' + filter) : console.log('В строке ' + i + ' нет совпадения ' + filter );
// Второй вариант
filter = products.find(product => product.vid === vidValue && product.size === sizeValue && product.type === typeValue && product.price === priceValue);
filter ? console.log('В строке ' + i + ' совпадение ' + filter) : console.log('В строке ' + i + ' нет совпадения ' + filter );
}