Как получить элемент массива по категориям?

#angularjs #json #filter

#angularjs #json #Фильтр

Вопрос:

У меня есть массив из нескольких продуктов

 var productList = [
    {
        id: '1',
        category: 'todos',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-1-191x191.jpg',
        bigImage: 'product-1-382x382.jpg'
    },
    {
        id: '2',
        category: 'comids',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    },
    {
        id: '3',
        category: 'alcoholicas',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-1-191x191.jpg',
        bigImage: 'product-1-382x382.jpg'
    },
    {
        id: '4',
        category: 'no-alcoholicas',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    },
    {
        id: '5',
        category: 'golosinas',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-1-191x191.jpg',
        bigImage: 'product-1-382x382.jpg'
    },
    {
        id: '6',
        category: 'snacks',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    },
    {
        id: '7',
        category: 'cigarros',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-1-191x191.jpg',
        bigImage: 'product-1-382x382.jpg'
    },
    {
        id: '8',
        category: 'lacteos-y-embutidos',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    },
    {
        id: '9',
        category: 'todos',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    }
];
  

Пожалуйста, убедитесь, что есть два продукта, категория которых является todos. Итак, может кто-нибудь, пожалуйста, скажите мне, как я могу получить эти два продукта одной категории от angularjs

Заранее спасибо

Комментарии:

1. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

2. Вы хотите сгруппировать список продуктов по категориям или просто хотите фильтровать массив по категориям todos ?

3. @Kishore Patra: Обратитесь к моему ответу, я сделал то, что вы хотите точно.

Ответ №1:

Попробуйте это :

 var productList = [
    {
        id: '1',
        category: 'todos',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-1-191x191.jpg',
        bigImage: 'product-1-382x382.jpg'
    },
    {
        id: '2',
        category: 'comids',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    },
    {
        id: '3',
        category: 'alcoholicas',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-1-191x191.jpg',
        bigImage: 'product-1-382x382.jpg'
    },
    {
        id: '4',
        category: 'no-alcoholicas',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    },
    {
        id: '5',
        category: 'golosinas',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-1-191x191.jpg',
        bigImage: 'product-1-382x382.jpg'
    },
    {
        id: '6',
        category: 'snacks',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    },
    {
        id: '7',
        category: 'cigarros',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-1-191x191.jpg',
        bigImage: 'product-1-382x382.jpg'
    },
    {
        id: '8',
        category: 'lacteos-y-embutidos',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    },
    {
        id: '9',
        category: 'todos',
        menuName: 'Empanada de Carne, Pollo o Mixta   Café 8oz.',
        menuPrice: '9.99',
        description: 'Panceta de cerdo sancochada y luego frita, acompañada de guarnición de mote y habas sancochadas (puspu), papas nativas doradas con cascara y sal de Maras, sarsa de cebolla con hierba buena; típicas guarniciones que acompañan el chicharrón y la infaltable uchucuta a base de rocoto y huacatay.',
        smallImage: 'product-2-191x191.jpg',
        bigImage: 'product-2-382x382.jpg'
    }
];
var temp = [];
angular.forEach(productList, function(element) {
if (element.category === 'todos') {
                     
                      temp.push(element)
                    }
  
});
console.log(temp);  
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angular.min.js"></script>  

Ответ №2:

это просто можно сделать с помощью javascript, используя только цикл for, подобный этому, попробуйте этот код

 var duplicate = [];
for(var i = 0 ; i < this.productList.length ; i  ){
  if(this.productList[i].category === 'todos'){
    this.duplicate.push(this.productList[i]);   //push only object having category naed todos
  }
}
  

Ответ №3:

Простое решение:-

Используйте фильтр с категорией todos

 var todosList = $filter('filter')(productList, function (p) {
    return p.category === 'todos';
});
  

Комментарии:

1. вы должны отметить принято к одному ответу, для людей, которые будут искать похожие вопросы