Array: métodos push y pop


Como los Array en Javascript son objetos, los mismos tienen una serie de métodos que nos facilitan trabajar con ellos.

Para insertar elementos en un vector hemos visto que con solo asignar un valor al vector en un determinado índice el dato queda almacenado y eventualmente el atributo length modificado:

  var vec=[];
  vec[0]=10;
  vec[1]=20;  
  document.write(vec.length);  //imprime 2

Esta sintaxis tenemos que tener cuidado como variamos el subíndice para no dejar componentes vacías si queremos implementar un array denso.

Una variante para resolver este mismo problema es utilizar el método push del objeto Array. Este método añade el valor al final del vector:

  var vec=[];
  vec.push(10);
  vec.push(20);  
  document.write(vec.length);  //imprime 2

Automáticamente cuando llamamos al método push el valor que le pasamos en el parámetro se almacena en el vector y se incrementa el atributo length.

Podemos inclusive llamar al método push pasando más de 1 parámetro:

  var vec=[];
  vec.push(10,20);
  document.write(vec.length);  //imprime 2

El método inverso llamado pop extrae el último elemento del Array y decrementa en uno el atributo length:

  var vec=[];
  vec.push(10,20,30,40);  
  document.write(vec.length+'<br>');  //imprime 4
  vec.pop();
  document.write(vec.length+'<br>');  //imprime 3
  document.write(vec.pop()+'<br>');   //imprime un 30
  document.write(vec.length+'<br>');  //imprime 2

El método pop() además de eliminar el último elemento del vector retorna el valor almacenado en dicha componente.

Si llamamos al método pop y el vector está vacío retorna el valor undefined.

Problema

Realizar la carga de sueldos por teclado hasta que se ingrese el cero. Almacenar todos los valores ingresados en un vector empleando el método push. Mostrar la suma de sueldos ingresados.

<html>
<head>
</head>
<body>

<script type="text/javascript">

  var sueldos=[];
  var monto;
  do {
    monto=prompt('Ingrese el sueldo (0 para finalizar):','');
    monto=parseInt(monto);
    if (monto!=0)
    {
      sueldos.push(monto);
    }
  } while (monto!=0);
  var suma=0;
  for(var f=0;f<sueldos.length;f++)
  {
    suma=suma+sueldos[f];
  }
  document.write('El total en sueldos ingresado es:'+suma);

</script>

</body>
</html>

De esta forma no llevamos un contador para indicar la posición donde se debe almacenar la componente en el vector:

      sueldos.push(monto);

Retornar