Javascript 如何使用js过滤json以获得结果?
有这样一个jsonJavascript 如何使用js过滤json以获得结果?,javascript,jquery,json,Javascript,Jquery,Json,有这样一个json { "SkuProduct": [ { "ProductId": 2547, "ProductName": "T-shirt", "SalePrice": 0.03, "SkuProps": [ { "PropValueId": 30, "PropCode": "body_type_cn" },
{
"SkuProduct": [
{
"ProductId": 2547,
"ProductName": "T-shirt",
"SalePrice": 0.03,
"SkuProps": [
{
"PropValueId": 30,
"PropCode": "body_type_cn"
},
{
"PropValueId": 16,
"PropCode": "color_cn"
},
{
"PropValueId": 20,
"PropCode": "size_cn"
}
]
},
{
"ProductId": 2553,
"ProductName": "T-shirt",
"SalePrice": 0.05,
"SkuProps": [
{
"PropValueId": 31,
"PropCode": "body_type_cn"
},
{
"PropValueId": 16,
"PropCode": "color_cn"
},
{
"PropValueId": 20,
"PropCode": "size_cn"
}
]
},
{
"ProductId": 2559,
"ProductName": "T-shirt",
"SalePrice": 0.07,
"SkuProps": [
{
"PropValueId": 30,
"PropCode": "body_type_cn"
},
{
"PropValueId": 16,
"PropCode": "color_cn"
},
{
"PropValueId": 20,
"PropCode": "size_cn"
}
]
},
{
"ProductId": 2563,
"ProductName": "T-shirt",
"SalePrice": 0.08,
"SkuProps": [
{
"PropValueId": 31,
"PropCode": "body_type_cn"
},
{
"PropValueId": 16,
"PropCode": "color_cn"
},
{
"PropValueId": 23,
"PropCode": "size_cn"
}
]
},
{
"ProductId": 2565,
"ProductName": "T-shirt",
"SalePrice": 0.09,
"SkuProps": [
{
"PropValueId": 31,
"PropCode": "body_type_cn"
},
{
"PropValueId": 16,
"PropCode": "color_cn"
},
{
"PropValueId": 20,
"PropCode": "size_cn"
}
]
}
],
"SellProps": [
{
"PropCode": "color_cn",
"PropName": "Color",
"Props": [
{
"Id": 16,
"PName": "Red"
}
]
},
{
"PropCode": "size_cn",
"PropName": "Size",
"Props": [
{
"Id": 20,
"PName": "M"
},
{
"Id": 23,
"PName": "XXL"
}
]
},
{
"PropCode": "body_type_cn",
"PropName": "Type",
"Props": [
{
"Id": 30,
"PName": "165/80A"
},
{
"Id": 31,
"PName": "170/84A"
}
]
}
]
}
您可以查看图片,当我单击XXL选项时,您可以从“SellProps”中找到它,id为23,我需要使用id从“SkuProduct”中筛选,
我需要从SKU产品中循环SkuProps。。要检查PropCode名称'size\u cn',正如您所看到的,没有与PropValueId匹配的名称,它全部是20个,大小为'M',因此我应该将该选项的其余部分禁用。。
我不知道我描述得是否很清楚
是否有一个简单的方法来检查每次当我点击一个选项,它可以告诉哪些选项应该禁用或不。。。最终可以获得自己的ProductId。。?我在函数中写了一个循环,函数中的循环太多了。。车太多了 我想我有一个(未经测试的)想法
由于您已经拥有XXL id(23),因此可以使用此值执行以下操作:
SkuProduct.map(function(product) {
return {product: product, filter: value.SkuProps.filter(function(prop) {
return prop.PropValueId = sizeId;
})};
});
这将返回一个数组,其中包含产品的一个对象,或者是一个SkuProp对象(如果在产品的道具中找到了大小),或者什么都没有。试试看,告诉我它是否有效,或者至少让你走上了正确的道路
祝你好运 可能重复的