Jquery 在JSON中搜索键值对集
我有一个JSON对象中所有可能的独特产品变体组合的列表[woocommerce就是这样构建的]。例如,我有一款产品有两种尺寸——尺寸1和尺寸2,颜色1和颜色2:Jquery 在JSON中搜索键值对集,jquery,json,wordpress,woocommerce,Jquery,Json,Wordpress,Woocommerce,我有一个JSON对象中所有可能的独特产品变体组合的列表[woocommerce就是这样构建的]。例如,我有一款产品有两种尺寸——尺寸1和尺寸2,颜色1和颜色2: variant_list = [ { "variation_id":328, "attributes":{ "size":"size1", "color":"color1" } },
variant_list = [
{
"variation_id":328,
"attributes":{
"size":"size1",
"color":"color1"
}
},
{
"variation_id":329,
"attributes":{
"size":"size2",
"color":"color1"
}
},
{
"variation_id":330,
"attributes":{
"size":"size1",
"color":"color2"
}
},
{
"variation_id":331,
"attributes":{
"size":"size2",
"color":"color2"
}
]
如果用户使用单选按钮选择了特定的大小和颜色组合,例如选择了size2和color1,我需要将变体id:329传递到后端。使用属性标准集={size:size2,color:color1}搜索我的JSON的最佳方法是什么
我的variant_list对象已给出-我无法更改它,但可以根据需要构建我的criteria对象,以使此搜索简单高效
我所做的尝试也很有效,但我知道这是老生常谈,效率低下:-
您可以使用库函数或任何其他适合您查找字段的函数
比如说
您可以使用类似于我使用javascript的东西
result = _U.findWhere(variant_list,{size:'user value',color:'user value'});
console.log(result.variation_id);
希望这能对你有所帮助。我在你的小提琴上有一些简单的更新 我添加了这个代码
function find(){
var a=$("input[name=size]:checked").val();
var b=$("input[name=color]:checked").val();
for(var i=0;i< variant_list.length; i++){
if(variant_list[i].attributes.size==a &&variant_list[i].attributes.color==b ){
alert(variant_list[i].variation_id);
}
}
}
等等我的JSFIDLE恢复到旧版本。我现在就修。好的。更新了我的JSFiddle.Hi@user1880957检查我的CodeUnderline.js似乎是正确的选择。我去看看。