如何使用for循环创建JavaScript对象?

时间:2013-01-13 07:47:15

标签: javascript jquery object for-loop each

我有一个对象样本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""
}

任何想法?感谢

1 个答案:

答案 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