javascript прочитать объект из массива - PullRequest
1 голос
/ 17 июня 2020

как я могу прочитать имя игрока в списке?

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)
}

Сейчас я получаю «undefined», и я хочу прочитать данные игрока от указанного c игрока в список.

Ответы [ 3 ]

1 голос
/ 17 июня 2020

У вас разные ошибки.

Во-первых, вы должны использовать new Player() вместо player.

Во-вторых, вы должны использовать это:

Players.push(player1);

вместо этого:

Players.push([player1]);

Первый толкает player1 в массив Players, второй толкает новый массив, который содержит только player1, в массив Players. Вы также должны использовать это, чтобы добавить player2.

1 голос
/ 17 июня 2020

Это потому, что вы неправильно создаете Player. Вместо let player1 = Player используйте let player1 = new Player(). Также вам нужно создать массив Players. Наконец, вам нужно создать класс Player.

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();
0 голосов
/ 17 июня 2020

спасибо @ 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);

}

отлично работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...