我已经制作了一个对象原型(prototype),我想为其组合一组数组以在该对象下创建。
我尝试使用函数构造函数来创建对象原型(prototype),并将所需的属性作为参数。然后我用所有属性的数据创建了数组。我的问题是,当我创建循环时,我的第一个想法是创建一个变量并以与每个对象实例相关的项目(在本例中为足球运动员的名字)命名它,但动态变量命名是不可能的,所以我似乎无法在循环中创建多个变量/对象实例。
var Players = function(name, position, number, yearOfBirth) {
this.name = name;
this.position = position;
this.number = number;
this.yearOfBirth = yearOfBirth;
}
var playerNames = ['1','2',....'25'];
var playerPosition = [....];
var playerNumber = [....];
var playerYearOfBirth = [....];
for (var i = 0; i < playerNames.length; i++) {
var playerNames[i] = new Object(playerNames[i], playerPosition[i], playerNumber[i],
playerYearOfBirth[i]);
}
所以这当然行不通,所以我也尝试了这个。
var player = [];
for (var i = 0; i < playerNames.length; i++) {
var players = {}
player.name = playerNames[i];
player.position = playerPosition[i];
player.number = playerNumber[i];
player.yearOfBirth = playerYearOfBirth[i]
player.push(players[i]);
}
但这仅将数据应用于最后一个对象。
所以我希望我的输出是用正确的数据填充所有对象,但我想知道我是否正在尝试创建一个不必要的解决方案。我以前没有玩过对象,所以我只是想绕过它,看看它是如何在教程之外应用的,当我实际上有它的用例时。
最佳答案
试试这个。数组和对象被相互代替使用,从而产生错误
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)
关于javascript - 使用循环将多个数组组合成一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57955196/