我有一个对象样本data
:
[Object, Object, Object]
0: Object
test_id: "1"
area: "high"
1: Object
test_id: "1"
area: "saw"
2: Object
test_id: "2"
area: "look"
我正在尝试按test_id
进行分组来创建新对象。
var obj = new Object();
$.each(data, function(k, v){
obj[v.test_id] += {area: v.area};
});
这似乎不起作用,它只返回一个对象行...
我想得到类似的东西:
1: {
{area: "high"}
{area: "saw"}
}
2: {
{area: "look""
}
任何想法?感谢
答案 0 :(得分:1)
编辑之后我注意到了一些事情,你正在尝试使用没有名称的属性创建一个javascript对象,这不是格式。在JSON(javascript对象表示法)中,每个属性都必须有一个值,您尝试存储的内容更适合数组。
相反,将其推入数组
$.each(data, function(k, v){
obj[v.test_id].area.push(v.area);
});
请记住首先创建obj [v.test_id]并将其area属性设置为[]。 这导致:
1: {
area: ["high","saw"]
}
3: {
area: ["look"]
}
另外,如果您愿意考虑使用下划线,它有非常强大(但基本)的收集方法,您可能需要查看http://underscorejs.org/#groupBy