我想根据类别标准筛选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'到' “颜色”:[“红色”,“绿色”]会简化过滤器,但不是显示挡块。首先显示你一直在尝试的代码。显示你的尝试使它看起来不像你想让别人为你做你的工作 – charlietfl
谢谢charlietfl。我编辑添加一个尝试,我只是在jsfiddle中查看不同的代码。我将尝试使用简化的颜色数组。 – user2680673
好吧...所以你很亲密....更好地学习从头开始稍有不妙从头开始 – charlietfl