Donc ici, j'ai une base de données d'objets utilisateur et j'aimerais pousser chacun d'eux dans le tableau 'allUsers'. Je souhaite ensuite pouvoir parcourir ce tableau en boucle et accéder à une propriété, par exemple. allUsers[i].genrePref
. Comment puis-je pousser toutes ces variables dans le tableau pour les stocker comme [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 = [];
Pour ajouter simplement variables au tableau, il n'y a pas d'autre moyen que de faire exactement ce que vous avez fait dans votre exemple, à savoir ajouter manuellement chaque variable à votre tableau.
// Users array
var allUsers = [
user,
jon,
lucy,
mike,
luke,
james,
dave,
sarah,
natalie
];
MAIS, vous devriez probablement faire quelque chose d'un peu plus robuste, qui dans sa forme la plus simple consiste à définir un littéral d'objet appelé users
qui contient chaque objet utilisateur. Ensuite, vous aurez non seulement l'avantage d'un pseudo-nommage autour de vos utilisateurs, vous pourrez facilement parcourir le littéral d'objet et placer chaque utilisateur dans un tableau, en tant que tel:
// 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]);
}
Une dernière note sur le style. Vous devriez probablement éviter de définir explicitement la 'clé' de chaque objet utilisateur dans votre littéral d'objet users
comme étant le nom de l'utilisateur. Si vous avez des utilisateurs avec le même nom, ce modèle va casser. Au lieu de cela, envisagez de générer une sorte de clé unique, comme un guid, ou une autre valeur unique pour chaque utilisateur. Ainsi, vous n'écraserez jamais accidentellement une entrée dans votre objet users
si, par exemple, vous remplissez cet objet users
à partir d'une base de données et que deux ou plusieurs utilisateurs portent le même nom.
Bonne chance.
Il suffit d’utiliser .Push
pour tous les insérer comme suit:
var allUsers = [];
allUsers.Push(allUsers, user, jon, lucy, mike, luke, james, dave, sarah, natalie);
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);
<html>
<head>
<title>Javascript</title>
</head>
<body>
</body>
</html>