есть некий массив items мне надо его отфильтровать по категориям , как сделать через цикл for или items.filter, я пробовал( index используется в React.Component onClick={() =>{productModel.typeOfProducts("phone")}}
items = [
{
id: 100,
title: 'Ipnone 200',
price: 12000,
type:"phone",
rest: 10
},
{
id: 101,
title: 'Samsung AAZ8',
price: 22000,
type:"phone",
rest: 5
},
{
id: 103,
title: 'Nokia 3310',
price: 5000,
type:"phone",
rest: 2
},
{
id: 105,
title: 'Huawei ZZ',
price: 15000,
type:"phone",
rest: 8
},
{
id: 106,
title: 'Ipad 10',
price: 20000,
type:"tablet",
rest: 8
},
{
id: 107,
title: 'ipad 20x',
price: 15000,
type:"tablet",
rest: 8
},
{
id: 108,
title: 'Microwave',
price: 5000,
type:"appliance",
rest: 8
},
];
typeOfProducts(index){
this.items.map((pr,i) =>{
if(pr.type !== index){
this.items.splice(i,1);
}
});
}
map вернет столько же элементов, сколько в исходном массиве, а вам надо отобрать часть. Удобнее воспользоваться filter по условию type равен заданному
items = [
{
id: 100,
title: 'Ipnone 200',
price: 12000,
type:"phone",
rest: 10
},
{
id: 101,
title: 'Samsung AAZ8',
price: 22000,
type:"phone",
rest: 5
},
{
id: 103,
title: 'Nokia 3310',
price: 5000,
type:"phone",
rest: 2
},
{
id: 105,
title: 'Huawei ZZ',
price: 15000,
type:"phone",
rest: 8
},
{
id: 106,
title: 'Ipad 10',
price: 20000,
type:"tablet",
rest: 8
},
{
id: 107,
title: 'ipad 20x',
price: 15000,
type:"tablet",
rest: 8
},
{
id: 108,
title: 'Microwave',
price: 5000,
type:"appliance",
rest: 8
},
];
function typeOfProducts(arr, type) {
return arr.filter(pr => pr.type == type)
}
console.log(typeOfProducts(items, "phone"))
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости