【问题标题】:How to get array element by category?如何按类别获取数组元素?
【发布时间】:2017-02-27 05:16:02
【问题描述】:

我有多个产品的数组

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获得这两个相同类别的产品

提前致谢

【问题讨论】:

标签: angularjs json filter


【解决方案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';
      });
      

      【讨论】:

      • 对于将要搜索类似问题的人,您应该将已接受标记为一个答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      • 2018-01-21
      • 1970-01-01
      相关资源
      最近更新 更多