J'ai fait un prototype d'objet pour lequel je souhaite combiner un ensemble de tableaux à créer sous ledit objet.
J'ai essayé de faire le prototype d'objet avec une réducteur de fonction avec les propriétés nécessaires en tant que paramètres. Ensuite, j'ai créé des tableaux avec les données de toutes les propriétés. Mon problème est que lorsque je crée une boucle, ma première idée était de créer une variable et de le nommer après l'élément correspondant à chaque instance d'objet (dans ce cas, le nom du joueur de football), mais la nommage variable dynamique n'est pas possible, donc je ne peut pas sembler créer plusieurs variables / cas d'objet dans une boucle. p> de sorte que cela ne fonctionne pas, donc j'ai aussi essayé cela. p> mais cela ne s'applique que des données au dernier objet. p> Je m'attendais à ce que ma sortie soit remplie dans tous les objets avec les bonnes données, mais je me demande si j'essaie de créer une solution non spécifique. Je n'ai pas joué avec des objets auparavant, alors j'essaie simplement de me contourner et de voir comment il est appliqué en dehors des tutoriels, lorsque je dispose d'une upease pour cela. P> p>
4 Réponses :
var players = []; // the list of the players for (var i = 0; i < playerNames.length; i++) { var player = {} // the object player player.name = playerNames[i]; player.position = playerPosition[i]; player.number = playerNumber[i]; player.yearOfBirth = playerYearOfBirth[i] players.push(player); // add the object player into the list of players }
Essayez ceci. Le tableau et l'objet ont été utilisés à la place les uns des autres, donnant ainsi une erreur
p>
var players = []; playerNames=[1,2] playerPosition=[1,2] playerNumber=[1,2] playerYearOfBirth=[1,2] for (var i = 0; i < playerNames.length; i++) { var player = {} player.name = playerNames[i]; player.position = playerPosition[i]; player.number = playerNumber[i]; player.yearOfBirth = playerYearOfBirth[i] players.push(player); } console.log(players)
Votre constructeur ne représente que les informations sur un joueur, alors renommez que sur p> lecteur code>. Vous pouvez ensuite configurer un nouveau code> ensemble de lecteurs code> sur lequel vous pouvez
pousser code> nouveaux joueurs comme ils sont créés.
function Player(name, position, number, yearOfBirth) {
this.name = name;
this.position = position;
this.number = number;
this.yearOfBirth = yearOfBirth;
}
const players = [];
const playerNames = ['Bob', 'Sue'];
const playerPosition = [1, 12];
const playerNumber = ['Forward', 'Goal'];
const playerYearOfBirth = [1972, 1956];
for (var i = 0; i < playerNames.length; i++) {
const player = new Player(playerNames[i], playerPosition[i], playerNumber[i], playerYearOfBirth[i]);
players.push(player);
}
console.log(players);
Vous pouvez collecter tous les joueurs dans un objet et accéder au joueur par le nom.
p> .as-console-wrapper { max-height: 100% !important; top: 0; }
Je vais essayer cela aussi. Merci!
Supprimer le
var code>, remplacer l'objet
code> avec
lecteur code>, alors cela fonctionnerait
On dirait que vous avez confondu les joueurs et le joueur?
"Mais cela n'applique que des données sur le dernier objet." Vous avez mélangé
lecteur code> et
lecteurs code>