Foros del Web » Programando para Internet » Javascript »

Crear array usando bucle for

Estas en el tema de Crear array usando bucle for en el foro de Javascript en Foros del Web. Hola! llevo un rato mirando en la web a ver si aprendo/entiendo que hay mal en mi sintaxis. Se trata de validar un formulario, en ...
  #1 (permalink)  
Antiguo 16/09/2010, 05:58
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Crear array usando bucle for

Hola!

llevo un rato mirando en la web a ver si aprendo/entiendo que hay mal en mi sintaxis.

Se trata de validar un formulario, en el cual hay unos campos donde se especifican los datos de unos autores. Además cada autor lleva un campo asociado con su número de orden.

Entonces estoy tratando de coger todos los números de orden en un array, para verificar que son números y después tengo que hacer una comprobación de que todos son distintos, que de eso ya no tengo ni idea.

Hasta la fecha sólo había tratado con arrays en php...


Código Javascript:
Ver original
  1. // JavaScript Document
  2. function valid() {
  3.     String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };
  4.     var patronNaN = /^[0-9]+$/;
  5.     if (pos == 0) {
  6.         alert("No ha seleccionado ning\u00fan autor");
  7.         return false;
  8.     }
  9.     var orden=new Array();
  10.     for (i=1;i<=pos;i++) {
  11.         ape = document.getElementById("ape"+i).value.trim();
  12.         nomb = document.getElementById("nomb"+i).value.trim();
  13.         orden[i] = document.getElementById("orden"+i).value;
  14.         if (!patronNaN.text(orden[i])) {
  15.             alert("el campo de orden debe ser num\u00e9rico");
  16.             return false;
  17.         }
  18.         if (ape.length == 0 || nomb.length == 0) {
  19.             alert("No ha proporcionado informaci\u00f3n suficiente en el campo de Autores");
  20.             return false;
  21.         }
  22.     }
  23.    
  24.     titulo = document.getElementById("titulo").value.trim();
  25.     anio = document.getElementById("anio").value.trim();
  26.     editor = document.getElementById("editor").value.trim();
  27.     tp = document.getElementById("tp").selectedIndex;
  28.     if (titulo.length == 0 || anio.length == 0 || editor.length == 0 || tp == 0) {
  29.         alert("No ha proporcionado informaci\u00f3n suficiente en el campo de Informaci\u00f3n");
  30.         return false;
  31.     }
  32.     return true;
  33. }

En concreto la parte del array sería:

Código Javascript:
Ver original
  1. // JavaScript Document
  2. function valid() {
  3.     var patronNaN = /^[0-9]+$/;
  4.     if (pos == 0) {
  5.         alert("No ha seleccionado ning\u00fan autor");
  6.         return false;
  7.     }
  8.     var orden=new Array();
  9.     for (i=1;i<=pos;i++) {
  10.         orden[i] = document.getElementById("orden"+i).value;
  11.         if (!patronNaN.text(orden[i])) {
  12.             alert("el campo de orden debe ser num\u00e9rico");
  13.             return false;
  14.         }
  15.     }
  16.     return true;
  17. }

hasta donde llego se que el error debe estar en la linea:
Código Javascript:
Ver original
  1. orden[i] = document.getElementById("orden"+i).value;

Gracias de antemano. A ver si otros ojos son capaces de ver en dónde me estoy equivocando. Y si me pueden dar una pista de como comprobar que son diferentes los elementos del array, sería estupendo.

Saludos
  #2 (permalink)  
Antiguo 16/09/2010, 06:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Crear array usando bucle for

Ve si te sirve una función como esta:
Código Javascript:
Ver original
  1. function repetido(varray) {
  2.     for (var i = 0; i < varray.length; i++) {
  3.         for (var j = i + 1; j < varray.length; j++) {
  4.             if (varray[i] == varray[j]) {
  5.                 return true;
  6.             }
  7.         }
  8.     }
  9.     return false;
  10. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 17/09/2010, 01:51
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: Crear array usando bucle for

Gracias, David, por tu función. Nada más verla recordé haber escrito algo parecido hace tiempo para otra cosa. ¡Que malas son las vacaciones!

El error con el array lo tengo solucionado, y no era tal error. Simplemente se me había colado una 'x' en lugar de una 's' en la línea:

if (!patronNaN.text(orden[i])) {

Desde luego que a veces hace falta levantarse y mirar las cosas al día siguiente con otros ojos.

Etiquetas: bucle
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:26.