[英]javascript read object out an array
我如何读取列表中的玩家姓名?
let Players = []
let Player = {
sprite: 1,
coords: {M: 0, X: 0, Y: 0},
name: ""
}
function LoadPlayers(){
console.log("total players: " + Players.length)
let player1 = Player
player1.sprite = 0
player1.coords = {M: 0, X: 6, Y: 1};
player1.name = "jimpie"
Players.push([player1]);
let player2 = Player
player2.sprite = 0
player2.coords = {M: 0, X: 1, Y: 17};
player2.name = "kolien"
Players.push([player2]);
console.log("total players: " + Players.length)
console.log("Player 1 name: " + Players[1].name)
console.log("Player 2 name: " + Players[0].name)
}
我现在得到“未定义”,我想从列表中的特定玩家读出玩家详细信息。
这是因为您没有正确创建Player
。 不要使用let player1 = Player
,而是使用let player1 = new Player()
。 此外,您需要创建一个Players
数组。 最后,您需要制作一个Player
class。
class Player { constructor(sprite, coords, name) { this.sprite = sprite; this.coords = coords; this.name = name; } } var Players = []; // If you want to access this array // from outside thefunction, keep it here. // Otherwise, move it in the LoadPlayers function function LoadPlayers() { let player1 = new Player(0, { M: 0, X: 6, Y: 1 }, "jimpie"); Players.push(player1); let player2 = new Player(0, { M: 0, X: 1, Y: 17 }, "kolien") Players.push(player2); console.log("total players: " + Players.length) console.log("Player 1 name: " + Players[0].name) console.log("Player 2 name: " + Players[1].name) } LoadPlayers();
你有不同的错误。
首先,您必须使用new Player()
而不仅仅是player
。
其次,你应该使用这个:
Players.push(player1);
而不是这个:
Players.push([player1]);
第一个将 player1 推送到 Players 数组,第二个将仅包含 player1 的新数组推送到数组 Players。 您还必须使用它来添加 player2。
谢谢@AlexH
function Player(sprite, coords, name){
this.sprite = sprite;
this.coords = coords;
this.name = name;
}
let Players = []
function LoadPlayers(){
console.log("total players: " + Players.length)
let player1 = new Player(1, [32, 15, 14], "jimpie")
Players.push(player1);
let player2 = new Player(1, (1, 1, 1), "kolien")
Players.push(player2);
console.log("total players: " + Players.length)
console.log("Player 1 name: " + Players[0].coords)
console.log("Player 2 name: " + Players[1].name)
var allcoords = Players[0].coords
var xcoord = allcoords[1]
var ycoord = allcoords[2]
var mapnum = allcoords[0]
console.log("map: " + mapnum + " x: " + xcoord + " y: " + ycoord);
}
这很好用!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.