我只是想在JS中创建一个动态对象,但是Object只保存了foor循环的最后一个元素。继承我的代码:
for(var i = 0; i < req.session.userObjekt.length; i++) {
var userObjekt = {
[req.session.userObjekt[i].User]: {
Data : req.session.userObjekt[i].Data,
Admin: req.session.userObjekt[i].Admin
}
};
}
当我在for循环中输出时,我得到了正确的结果(7个用户+属性) 当我输出for循环时,我只获得最后一个User + Properties。
如何在我的对象中保存for循环中的所有元素?
提前致谢。
答案 0 :(得分:1)
因为您在每次迭代中为userObjekt
分配了一个新对象。从for
循环体
var userObjekt = { };
for(var i = 0; i < req.session.userObjekt.length; i++) {
userObjekt[req.session.userObjekt[i].User] = {
Data : req.session.userObjekt[i].Data,
Admin: req.session.userObjekt[i].Admin
};
}
答案 1 :(得分:1)
你可以在循环之外创建一个数组,稍后只需将对象推入其中就可以使用声明和填充的数组:
var objektArr = [];
for(var i=0; i<req.session.userObjekt.length; i++) {
var userObjekt = {
[req.session.userObjekt[i].User]: {
Data : req.session.userObjekt[i].Data,
Admin: req.session.userObjekt[i].Admin
},
};
objektArr.push(userObjekt);
}
console.log(objektArr);