Я хочу фильтровать массив продуктов JSON на основе критериев категории. Возможно, решение будет заключаться в настройке JSON по-разному, но я не уверен, как будет выглядеть этот JSON. Вот мой текущий JSON:Фильтр нескольких категорий JSON
var myData = {
"products": [
{
"name": "Multi Color 1",
"price": "2.99",
"color": [
{
"type": "red"
},
{
"type": "blue"
}
]
},
{
"name": "Multi Color 2",
"price": "2.99",
"color": [
{
"type": "red"
},
{
"type": "green"
}
]
},
{
"name": "Single Color",
"price": "2.99",
"color": [
{
"type": "red"
}
]
}
]
}
Так что, если я фильтрация по «красной», он будет возвращать все три продукта. Но если фильтрация «зеленым» или «синим», она будет возвращать только один продукт. Я пробовал $ .grep и $ .map, но я не могу получить несколько уровней для правильного возврата продуктов. Буду признателен за любую оказанную помощь.
Один из моих попыток был:
testMap = $.grep(myData.products, function(element, index) {
return $.grep(element.color, function(element, index) {
return (element.value === "green");
});
});
изменение '' color' к «color»: [«red», «green»] 'немного упростит фильтр, но не будет пробной пробкой. Покажите код, который вы пытались сперва, хотя. Показ ваших попыток не похож на то, что вы хотите, чтобы другие делали вашу работу за вас. – charlietfl
Спасибо charlietfl. Я отредактировал, чтобы добавить одну попытку, я просто просматривал другой код в jsfiddle. Я попытаюсь использовать упрощенную цветовую матрицу. – user2680673
ОК ... так что вы были довольно близки .... лучше учиться на том, что пошло не так, как начать с нуля – charlietfl