繁体   English   中英

javascript 读取 object 出一个数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM