Javascript JSON对象按值分组
我使用JSON创建了产品数据库:Javascript JSON对象按值分组,javascript,jquery,json,Javascript,Jquery,Json,我使用JSON创建了产品数据库: { "1": {"group":"1", "name":"bmw" }, "2": {"group":"1", "name":"audi"}, "3": {"group":"2", "name":"volvo"} } 但现在我需要创建一个HTML下拉列表,其中包含按组id列出的所有元素 我尝试过使用Javascript.grep(),但我没有足够的经验。有什么帮助吗 var all; $.getJSON("data.json", function( data
{
"1": {"group":"1", "name":"bmw" },
"2": {"group":"1", "name":"audi"},
"3": {"group":"2", "name":"volvo"}
}
但现在我需要创建一个HTML下拉列表,其中包含按组id列出的所有元素
我尝试过使用Javascript.grep()
,但我没有足够的经验。有什么帮助吗
var all;
$.getJSON("data.json", function( data ) {
all = data;
});
var group1 = $.grep(all, function(el, i) {
return el.group. === 2
});
console.log(JSON.stringify(group1));
根据用于阵列的is,巧合的是,它也有几个清晰的示例。。。JSON对象不是数组,而是对象文本。理想情况下,不是这样:
{
“1”:{“集团”:“1”,“名称”:“宝马”},
“2”:{“集团”:“1”,“名称”:“奥迪”},
“3”:{“集团”:“2”,“名称”:“沃尔沃”}
}
您的回复应该与此类似:
{
产品:[
{“集团”:“1”,“名称”:“宝马”},
{“集团”:“1”,“名称”:“奥迪”},
{“集团”:“2”,“名称”:“沃尔沃”}
]
}
然后稍加调整,您的示例将在另一个数组中返回所需的对象-注意和之间的差异,因为在JSON示例中,组将作为字符串返回,而不是作为数字返回
var group1=$.grep(all.products,function(el,i){
返回el.group==2;
});
如果您仍然希望使用原始的JSON对象(您不应该这样做,因为它的键看起来是多余的,并且有点低效),那么您必须设计自己的过滤方法。例如:
var group1={};
$。每个(全部,功能(i,el){
如果(el.group==2)group1[i]=el;
});
展示你对grep的尝试和你想要的输出这可能是一个很好的开始,但在我的案例中没有发现任何有用的东西