多个动态对象属性

时间:2017-09-05 13:29:12

标签: javascript object dynamic automatic-properties

我想知道是否可以在for循环中创建一个Object的多个属性。

我试试这样,但它的工作不正确:

var dataObjekt= {}; 
for(var i=0;i<req.session.dataObjekt.length;i++) {
 for(var v=0;v<req.session.dataObjekt[i].data.length;v++) { 
   dataObjekt[req.session.userObjekt[i].User] = {
     [req.session.dataObjekt[i].data[v]]: {
     },
   };
 }

}

我想得到:

User 1 { data 1: { }, data2: { }, data3: { }, ....};
User 2 { data 1: { }, data2: { }, data3: { }, ....};
User 3 { data 1: { }, data2: { }, data3: { }, ....};

但我得到的是:

User 1 { last data: { };
User 2 { last data: { };
User 3 { last data: { };

Objekt只“保存”我的(v)for循环的最后一个元素。 无论我想做什么,我都无法让它发挥作用。

提前感谢。

1 个答案:

答案 0 :(得分:0)

在内循环的每次迭代中,你正在覆盖dataObjekt [req.session.userObjekt [i] .User]。

你可以试试这个:

    var dataObjekt= {}; 
    for(var i=0;i<req.session.dataObjekt.length;i++) {
         dataObjekt[req.session.userObjekt[i].User] = [];
         for(var v=0;v<req.session.dataObjekt[i].data.length;v++) { 
           dataObjekt[req.session.userObjekt[i].User].push({
             [req.session.dataObjekt[i].data[v]]: {
       });
    };
   }