como guardar objetos en un array?

publicado por: Anonymous

Tengo el siguiente código y no sé realmente como hacer para que cada jugador quede guardado en una lista de jugadores, osea en un array

Por ejemplo si quiero iterar sobre sus propios objetos, deberé asignarle una ID a cada jugador? Se me ocurre que su id podría ser su indice en el array, pero si fuera asi, como le asigno ID, si aún no he guardado el jugador en un array?

_x000D_

_x000D_

function Jugador(name, edad, dinero) {_x000D_
_x000D_
  this.name = name;_x000D_
  this.edad = edad;_x000D_
  this.dinero = dinero;_x000D_
_x000D_
}_x000D_
_x000D_
function obtenerNombre() { // Obtengo el nombre del input_x000D_
_x000D_
  var obtenerN = document.getElementById("nombre").value;_x000D_
  return obtenerN;_x000D_
_x000D_
}_x000D_
_x000D_
function obtenerEdad() { // Obtengo la edad del input_x000D_
_x000D_
  var obtenerE = document.getElementById("edad").value;_x000D_
  obtenerE = parseInt(obtenerE);_x000D_
_x000D_
  return obtenerE;_x000D_
}_x000D_
_x000D_
function crearJugador() {_x000D_
_x000D_
  var jug = new Jugador(obtenerNombre(), obtenerEdad(), 0);_x000D_
  document.write(jug.name, jug.edad, jug.dinero);_x000D_
}

_x000D_

<!DOCTYPE html>_x000D_
<html>_x000D_
_x000D_
<head>_x000D_
  <title>HTML5, CSS3 and JavaScript demo</title>_x000D_
</head>_x000D_
_x000D_
<body>_x000D_
  <!-- Start your code here -->_x000D_
_x000D_
  <style>_x000D_
    body {_x000D_
      background-color: #111111;_x000D_
    }_x000D_
    _x000D_
    h1 {_x000D_
      color: white;_x000D_
    }_x000D_
  </style>_x000D_
  <form>_x000D_
    <input type="text" id="nombre" placeHolder="Nombre" />_x000D_
    <input type="text" id="edad" placeholder="edad" />_x000D_
    <input type="button" onClick="obtenerNombre(); obtenerEdad(); crearJugador();" value="Enviar mis datos!" />_x000D_
_x000D_
  </form>_x000D_
_x000D_
_x000D_
_x000D_
  <!-- End your code here -->_x000D_
</body>_x000D_
_x000D_
</html>

_x000D_

_x000D_

_x000D_

solución

Aquí tienes un ejemplo creando un array jugadores y calculando el id del nuevo jugador en función de los elementos ya existentes en el array.

Después de crear el nuevo jugador llamo a una función para listar todos los jugadores del array para mostrar cómo puedes recorrerlo.

EDITO. Edito el ejemplo para mostrar cómo podría modificar (añadir dinero) a un jugador en particular utilizando su id.

_x000D_

_x000D_

function Jugador(id, name, edad, dinero) {_x000D_
  this.id = id;_x000D_
  this.name = name;_x000D_
  this.edad = edad;_x000D_
  this.dinero = dinero;   _x000D_
}_x000D_
_x000D_
var jugadores = [];_x000D_
_x000D_
function obtenerNombre() {  // Obtengo el nombre del input_x000D_
  _x000D_
  var obtenerN = document.getElementById("nombre").value;_x000D_
  return obtenerN;_x000D_
  _x000D_
}_x000D_
function obtenerEdad() { // Obtengo la edad del input_x000D_
  _x000D_
  var obtenerE = document.getElementById("edad").value;_x000D_
  obtenerE = parseInt(obtenerE);_x000D_
  _x000D_
  return obtenerE;_x000D_
}_x000D_
_x000D_
function crearJugador() {_x000D_
  _x000D_
  var jug = new Jugador(jugadores.length + 1, obtenerNombre(), obtenerEdad(), 0);_x000D_
  jugadores.push(jug);_x000D_
  mostrarListado();_x000D_
}_x000D_
_x000D_
function mostrarListado(){_x000D_
  var lista='';_x000D_
  for(var i=0; i<jugadores.length; i++){_x000D_
    lista+= 'id: ' + jugadores[i].id +_x000D_
      ' nombre: ' + jugadores[i].name + _x000D_
      ' edad: ' + jugadores[i].edad + _x000D_
      ' dinero: ' + jugadores[i].dinero + 'n';_x000D_
  }_x000D_
  document.getElementById('listado').innerText = lista;_x000D_
}_x000D_
_x000D_
function sumarDinero(){_x000D_
  var dinero = parseInt(document.getElementById('dinero').value);_x000D_
  var id = parseInt(document.getElementById('jugadorid').value);_x000D_
  if (!(isNaN(dinero) || isNaN(id))){_x000D_
    for (var i=0; i<jugadores.length; i++){_x000D_
      if (jugadores[i].id==id){_x000D_
        jugadores[i].dinero+= dinero;_x000D_
      }_x000D_
    }_x000D_
    mostrarListado();_x000D_
  }_x000D_
  _x000D_
}

_x000D_

<!DOCTYPE html>_x000D_
<html>_x000D_
<head>_x000D_
<title>HTML5, CSS3 and JavaScript demo</title>_x000D_
</head>_x000D_
<body>_x000D_
<!-- Start your code here -->_x000D_
_x000D_
  <style>_x000D_
    body {_x000D_
      _x000D_
      background-color: #111111;_x000D_
    }_x000D_
   h1, div {_x000D_
      _x000D_
      color: white;_x000D_
  }_x000D_
   _x000D_
    _x000D_
  </style>_x000D_
  <form>_x000D_
    <input type="text" id="nombre" placeHolder="Nombre"/>_x000D_
    <input type="text" id="edad" placeholder="edad"/>_x000D_
    <input type="button" onClick="crearJugador();" value="Enviar mis datos!"/>_x000D_
        _x000D_
  </form>_x000D_
  _x000D_
  <form>_x000D_
    <input type="number" id="jugadorid" placeHolder="id" />_x000D_
    <input type="number" id="dinero" placeHolder="dinero" />_x000D_
    <input type="button" onClick="sumarDinero();" value="Sumar dinero" />_x000D_
  </form>_x000D_
  _x000D_
  <div id="listado"></div>_x000D_
_x000D_
<!-- End your code here -->_x000D_
</body>_x000D_
</html>

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *