Foros del Web » Programando para Internet » Javascript »

Indice De Un Elemento Dentro De Un Array

Estas en el tema de Indice De Un Elemento Dentro De Un Array en el foro de Javascript en Foros del Web. Hola a todos, este es mi primer mensaje con una pregunta para la cual no encuentro respuesta en ninguna parte. ¿ Como saber -mediante programación ...
  #1 (permalink)  
Antiguo 09/12/2006, 07:44
 
Fecha de Ingreso: diciembre-2006
Mensajes: 2
Antigüedad: 17 años, 4 meses
Puntos: 0
Indice De Un Elemento Dentro De Un Array

Hola a todos, este es mi primer mensaje con una pregunta para la cual no encuentro respuesta en ninguna parte.
¿ Como saber -mediante programación - el número de índice de un elemento dentro de un array ?
Ejemplo : en un array tengo en 0="cero" , en 1 ="uno", en 2= "dos"
Quiero preguntar al script que número de índice tiene el elemento "dos" y que me responda = 2
Ejemplo práctico: En un documento html con varias imágenes necesito que al hacer click sobre una cualquiera de ellas aparezca un alert("esta imagen es la número X de este documento") donde X sea el número de indice de esa imagen dentro del array document.images[]

Gracias de antemano por la atención y las respuestas

TOMAX
  #2 (permalink)  
Antiguo 09/12/2006, 08:18
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Indice De Un Elemento Dentro De Un Array

Hola tomax. Bienvenido al foro.

Prueba este ejemplo:
Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
indice(obj) {
  for (
i=0ele=document.images[i]; i++)
    if (
ele==obj) return i;
}
</script>
</head>
<body>
<img src="imagen1.jpg" onclick="alert(indice(this))" />
<img src="imagen2.jpg" onclick="alert(indice(this))" />
<img src="imagen3.jpg" onclick="alert(indice(this))" />
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 09/07/2007, 22:58
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Re: Indice De Un Elemento Dentro De Un Array

... pero y si los índices no son continuos ¿?. Pueden ser creados directamente o incluso pueden no ser necesariamente numérticos... ¿cómo sería en un caso así? o maese de maeses .

(En PHP esta la función key() )
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 09/07/2007, 23:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Re: Indice De Un Elemento Dentro De Un Array

Jé, me respondo solo... lo recordé .
Código:
<script type="text/javascript">
arreglo = Array();
arreglo[3] ='Creo';
arreglo[23] = 'este';
arreglo[35] = 'asunto';
arreglo[100] ='era';
arreglo["key"] = 'algo así';


for (i in arreglo) {
document.write("Key :"+i);
document.write(" || valor: "+arreglo[i]+"<br>");
}
</script>
¿Hay algúna otra forma? , ¿algúna otra forma de crear el arreglo? en PHP uedo hacer
Código PHP:
arreglo = (
0=>"algo",
"key"=>"así"
); 
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 10/07/2007, 02:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Indice De Un Elemento Dentro De Un Array

Hola:

¿Como estás jam?

El problema de poner ese tipo de índices es que la longitud del array es 1 más de el mayor índice numérico (si pones arreglo.length verás 101)

... Ya que lo defines como array, pero en realidad es un objeto...
Si en vez de declarar ese arreglo como array lo haces como Object(), no tendrá definida la propiedad length, aunque será muy fácil de implementarlo como método:

Código:
Object.prototype.length = function() {
cuentaIndices = 0;
for (i in this) cuentaIndices++;
return cuentaIndices;
}
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 18:01.