所以这里我有一个用户对象数据库,我想将每个对象推入'allUsers'数组。然后,我希望能够遍历此数组并访问属性,例如allUsers[i].genrePref
。如何将所有这些变量推送到数组中以存储它们,如[user, jon, lucy, mike, luke...
// Users
var user = {username: user9110252username, genrePref: user9110252genre};
var jon = {username: 'Jon', genrePref: 'rock'};
var lucy = {username: 'Lucy', genrePref: 'pop'};
var mike = {username: 'Mike', genrePref: 'rock'};
var luke = {username: 'Luke', genrePref: 'house'};
var james = {username: 'James', genrePref: 'house'};
var dave = {username: 'Dave', genrePref: 'bass'};
var sarah = {username: 'Sarah', genrePref: 'country'};
var natalie = {username: 'Natalie', genrePref: 'bass'};
// Users array
var allUsers = [];
答案 0 :(得分:10)
要将变量添加到数组中,除了完全按照您在示例中所做的操作之外,别无其他办法,即手动将每个变量添加到数组中。
// Users array
var allUsers = [
user,
jon,
lucy,
mike,
luke,
james,
dave,
sarah,
natalie
];
但是,您应该做一些更健壮的事情,最简单的形式是定义一个名为users
的对象文字,其中包含每个用户对象。然后,您不仅可以获得围绕用户的伪命名空间的额外好处,还可以轻松地迭代对象文字并将每个用户放入数组中,如下所示:
// Users
var users = {
user : {username: user9110252username, genrePref: user9110252genre},
jon : {username: 'Jon', genrePref: 'rock'},
lucy : {username: 'Lucy', genrePref: 'pop'},
mike : {username: 'Mike', genrePref: 'rock'},
luke : {username: 'Luke', genrePref: 'house'},
james : {username: 'James', genrePref: 'house'},
dave : {username: 'Dave', genrePref: 'bass'},
sarah : {username: 'Sarah', genrePref: 'country'},
natalie : {username: 'Natalie', genrePref: 'bass'}
}
// Users array
var allUsers = [];
// Populate users array
for(var key in users) {
allUsers.push(users[key]);
}
关于风格的最后一点说明。你可能应该避免明确地设置'键'您的users
对象文字中的每个用户对象都是用户的名称。如果您有任何具有相同名称的用户,则此模型将中断。相反,请考虑为每个用户生成某种唯一键,如guid或其他一些唯一值。这样,如果您从某个数据库填充此users
对象并且两个或多个用户碰巧具有相同的名称,那么您永远不会意外覆盖users
对象中的条目。
答案 1 :(得分:0)
只需使用.push
将所有内容推送到这样:
var allUsers = [];
allUsers.push(allUsers, user, jon, lucy, mike, luke, james, dave, sarah, natalie);
答案 2 :(得分:0)
var arr = [{username: 'Jon', genrePref: 'rock'},{username: 'Lucy', genrePref: 'pop'},{username: 'Mike', genrePref: 'rock'},{username: 'Luke', genrePref: 'house'},{username: 'James', genrePref: 'house'},{username: 'Dave', genrePref: 'bass'},{username: 'Sarah', genrePref: 'country'},{username: 'Natalie', genrePref: 'bass'}];
var text = "<table border ='1'><tr><th>Username</th><th>genrePref</th></tr>"
for (var i=0;i<arr.length;i++){
text+="<tr><td>"+arr[i].username+"</td><td>"+arr[i].genrePref+"</td></tr>"
}
text+="</table>";
document.write(text);
&#13;
<html>
<head>
<title>Javascript</title>
</head>
<body>
</body>
</html>
&#13;