SEO Forums: Your seo discussion forum  
Welcome, Unregistered.
You last visited: Today at 04:42 AM
Tags:



Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 09-25-2008, 04:54 AM
LuisDavid
Guest
 
Posts: n/a
Default Elementos de un array



Hola grupo que tal, tengo una inquietud no se si sea sencillo, o me
estoy confundiendo; la cuestion es esta:
tengo este array.
var lista = new Array("uno","dos",tres","cuatro");
ahora como hago para que en una variable me tome un elemento del array
lista; dependiendo de la longitud del elemento; en este caso que me
extraiga el elemento: lista[3] por ser:
lista[3].length = 6 //el numero de mayor longitud respecto a los otros
elementos del array lista; ahora los elementos del array lista estan
"aleatoriamente"; no necesariamente tienen que estar en orden, y la
longitud del array puede ser distinto:
en este caso es lista.length = 4; //este valor puede variar.
"en pocas palabras quiero tomar el elemento de la lista de mayor
longitud";
es posible hacer eso o esque le pido mucho al new Array?, le agradesco
me puedan ayudar. gracias grupo. que tengan buen dia.
Reply With Quote


  #2 (permalink)  
Old 09-25-2008, 04:54 AM
SAM
Guest
 
Posts: n/a
Default Re: Elementos de un array

LuisDavid a écrit :
> Hola grupo que tal, tengo una inquietud no se si sea sencillo, o me
> estoy confundiendo; la cuestion es esta:
> tengo este array.
> var lista = new Array("uno","dos",tres","cuatro");
> ahora como hago para que en una variable me tome un elemento del array
> lista; dependiendo de la longitud del elemento; en este caso que me
> extraiga el elemento: lista[3] por ser:
> lista[3].length = 6 //el numero de mayor longitud respecto a los otros
> elementos del array lista; ahora los elementos del array lista estan
> "aleatoriamente"; no necesariamente tienen que estar en orden, y la
> longitud del array puede ser distinto:
> en este caso es lista.length = 4; //este valor puede variar.
> "en pocas palabras quiero tomar el elemento de la lista de mayor
> longitud";
> es posible hacer eso o esque le pido mucho al new Array?, le agradesco
> me puedan ayudar. gracias grupo. que tengan buen dia.



On n'a rien compris à ces histoires de longitudes !

Puedes muy bien escoger(clasificar) tu tablero (array) sin crear un nuevo :
lista = lista.sort();
ò tanbien directamente :
lista.sort();


var lista = [ 1, 3, 5, 4, 2];
alert('lista original : ' + lista);
alert('el mayor = '+ lista.sort()[lista.length-1]);
alert('lista modificada : ' + lista);


--
sm
Reply With Quote


  #3 (permalink)  
Old 09-25-2008, 04:54 AM
Thomas 'PointedEars' Lahn
Guest
 
Posts: n/a
Default Re: Elementos de un array

LuisDavid wrote:

> tengo este array.
> var lista = new Array("uno","dos",tres","cuatro");


var lista = ["uno", "dos", tres", "cuatro"];

is also possible. See <http://PointedEars.de/es-matrix>.

> ahora como hago para que en una variable me tome un elemento del array
> lista; dependiendo de la longitud del elemento; en este caso que me
> extraiga el elemento: lista[3] por ser:


lista.splice(3, 1);

<http://groups.google.com/groups?as_q=remove+element+array&as_ugroup=comp.la ng.javascript&scoring=d&filter=0>

> lista[3].length = 6


You would try to assign 6 to the `length' property of the String object that
represents lista[3] ("cuatro"). Since this property is read-only, it will
not work.

> [...]
> en este caso es lista.length = 4; //este valor puede variar.


That would delete lista[4], lista[5], and so on.


HTH

PointedEars
--
Use any version of Microsoft Frontpage to create your site.
(This won't prevent people from viewing your source, but no one
will want to steal it.)
-- from <http://www.vortex-webdesign.com/help/hidesource.htm>
Reply With Quote


  #4 (permalink)  
Old 09-25-2008, 04:54 AM
SAM
Guest
 
Posts: n/a
Default Re: Elementos de un array

LuisDavid a écrit :
> "en pocas palabras quiero tomar el elemento de la lista de mayor
> longitud";


var lista = ["uno","dos","tres","cuatro",'cinco','seis'];
var k = '';
for(i in lista) if(lista[i].length>k.length) k = lista[i];
alert('El elemento más largo es : '+k);

--
sm
Reply With Quote


  #5 (permalink)  
Old 09-25-2008, 11:08 PM
LuisDavid
Guest
 
Posts: n/a
Default Re: Elementos de un array

On 24 sep, 03:48, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
wrote:
> LuisDavid a écrit :
>
> > "en pocas palabras quiero tomar el elemento de la lista de mayor
> > longitud";

>
> var lista = ["uno","dos","tres","cuatro",'cinco','seis'];
> var k = '';
> for(i in lista) if(lista[i].length>k.length) k = lista[i];
> alert('El elemento más largo es : '+k);
>
> --
> sm


SAM mira el codigo funciona es justo lo que queria pero sere un poco
mas especifico mira el array lista no se escribe textualmente como
esta; sino que es generado por el metodo match que extrae elementos de
una cadena:

<script>
var cadena = "elemtos(uno), documentos(tres), portales(cinco),
ejecutables(tres)"
var lista = cadena.match(/(\w*)/g);
//var lista = ["uno","tres","cinco","tres"];
var k = '';
for(i in lista) if(lista[i].length>k.length) k = lista[i];
alert('El elemento más largo es : '+k);
</script>

En FireFox, Netscape, Opera, Safari. k almacena esto:
El elemento mas largo es: cinco// esta OK.

Pero en IE k almacena esto:
El elemento mas largo es: elemtos(uno), documentos(tres),
portales(cinco), ejecutables(tres)

IE el metodo match si lo reconoce como array (al vizualizarlo) pero al
pasar el codigo no!!;
IE es el monton por eso quiero que funcione tambien ahi.
Sin embargo los otros navegadores si: me podes ayudar porfavor,
"la idea es que quiero extraer el contenido del parentesis mas largo
de la variable cadena" o hay otra forma de hacerlo?,

var cadena es generada por un codigo mas atras, que puede variar de 1
parentesis() a 9 parentesis() en contenidos, (varia tambien la
longitud del array), en este caso yo quiero extraer el contenido mas
largo del parentesis.
Pero IE creo que le asusta el metodo match. solo lo hace si lo paso
como array textual asi:

var lista = ["uno","tres","cinco","tres"];

.. porque??? ayuda porfavor. gracias de antemano Grupo.
Reply With Quote


  #6 (permalink)  
Old 09-25-2008, 11:08 PM
Jorge
Guest
 
Posts: n/a
Default Re: Elementos de un array

On Sep 24, 1:48*am, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
wrote:
>
> for(i in lista) { }


Hmm, what a lovely 'for..in' !
I had never applied it to an array.

javascript:a=['0',,,,,,,,'8'], a[4]= '4', n= 0;for (i in a) { n++;
alert(i+a[i]); };alert(n+' !== '+a.length);

Is it predictable in this case ? the order of 'i', I mean ?
--
Jorge.
Reply With Quote


  #7 (permalink)  
Old 09-25-2008, 11:08 PM
Jorge
Guest
 
Posts: n/a
Default Re: Elementos de un array

On Sep 25, 5:51*pm, LuisDavid <luisdavi...@gmail.com> wrote:

>
> IE el metodo match si lo reconoce como array (al vizualizarlo) pero al
> pasar el codigo no!!;
> IE es el monton por eso quiero que funcione tambien ahi.
> Sin embargo los otros navegadores si: me podes ayudar porfavor,
> "la idea es que quiero extraer el contenido del parentesis mas largo
> de la variable cadena" o hay otra forma de hacerlo?,
>


Quieres decir que en IE falla el .match() y la expresión regular ?
En qué versión(es) de IE ?
Puedes poner una muestra de cadena (la más complicada si puede ser, de
esas que dices con muchos niveles de paréntesis) a la que aplicas la
expresión regular con el .match() y falla ?

Yo aquí partiéndome los cuernos en guiri, y llegas tu y venga que
ancha es Castilla, vamos qué jeta no ?

Suerte,
--
Jorge.
Reply With Quote


  #8 (permalink)  
Old 09-26-2008, 04:26 PM
SAM
Guest
 
Posts: n/a
Default Re: Elementos de un array

Le 9/25/08 7:14 PM, Jorge a écrit :
> On Sep 24, 1:48 am, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
> wrote:
>> for(i in lista) { }

>
> Hmm, what a lovely 'for..in' !
> I had never applied it to an array.
>
> javascript:a=['0',,,,,,,,'8'], a[4]= '4', n= 0;for (i in a) { n++;
> alert(i+a[i]); };alert(n+' !== '+a.length);
>
> Is it predictable in this case ? the order of 'i', I mean ?


What do you mean by 'predictable' ?

javascript:a=['0',,,,,,,,'8'], a[4]= '4';for(i in a)
if(a[i])alert('elem.t #'+i+' = '+a[i]);

The order of 'i' is always from 0 to n-1

javascript:a=['0',,,,,,,,'8'], a[4]= '4', n= 0;a.sort();for (i in a) {
n++;alert('elem.t #'+i+' = '+a[i]); };alert('n = '+n+'\na.length =
'+a.length+'\nis n = a.length ? '+(n == a.length));

javascript:a=['0',,,,,,,,'8'], a[4]= '4', n= 0;a.sort();a.length=10;for
(i in a) { n++;alert('elem.t #'+i+' = '+a[i]); };alert('n =
'+n+'\na.length = '+a.length+'\nis n = a.length ? '+(n == a.length));

javascript:a=['0',,,,,,,,'8'], a[4]= '4', n= 0;a.sort();a.push(29);for
(i in a) { n++;alert('elem.t #'+i+' = '+a[i]); };alert('n =
'+n+'\na.length = '+a.length+'\nis n = a.length ? '+(n == a.length));

--
sm
Reply With Quote


  #9 (permalink)  
Old 09-26-2008, 04:26 PM
SAM
Guest
 
Posts: n/a
Default Re: Elementos de un array

Le 9/25/08 5:51 PM, LuisDavid a écrit :
> On 24 sep, 03:48, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
> wrote:
>> var lista = ["uno","dos","tres","cuatro",'cinco','seis'];
>> var k = '';
>> for(i in lista) if(lista[i].length>k.length) k = lista[i];
>> alert('El elemento más largo es : '+k);

>
> SAM mira el codigo funciona es justo lo que queria pero sere un poco
> mas especifico mira el array lista no se escribe textualmente como
> esta; sino que es generado por el metodo match que extrae elementos de
> una cadena:
>
> <script>
> var cadena = "elemtos(uno), documentos(tres), portales(cinco),
> ejecutables(tres)"
> var lista = cadena.match(/(\w*)/g);


\w Matches any alphanumeric character from the basic Latin alphabet,
including the underscore. Equivalent to [A-Za-z0-9_].
* Matches the preceding item 0 or more times

That will match all suites of alphanumeric characters.

Esto va a sacar todos los séquitos de carácteres alfanuméricos (incluido
los vacías)

Try (in location bar of your browser(s) ) :

javascript:var cadena = "elemtos(uno), documentos(tres),
portales(cinco),ejecutables(tres)";var lista =
cadena.match(/(\w*)/g);alert(lista);

Result :
elemtos,,uno,,,,documentos,,tres,,,,portales,,cinc o,,,ejecutables,,tres,,

Si lo que quieres haber esta : '(uno),(tres),(cinco),(tres)'
hay de far : cadena.match(/\(\w*\)/g);


javascript:var cadena = "elemtos(uno), documentos(tres),
portales(cinco),ejecutables(tres)";var lista =
cadena.match(/\(\w*\)/g);var k='';for(i in lista)
if(lista[i].length>k.length)k=lista[i];alert(k);

would have to work fine with other browsers than IE

With IE (por IE) :

javascript:var cadena = "elemtos(uno), documentos(tres),
portales(cinco),ejecutables(tres)";var lista =
cadena.match(/\(\w*\)/g);alert('lista = '+lista);var
k='';for(i=0,n=lista.length;i<n;i++){alert('lista['+i+'] = '+lista[i]);
if(lista[i].length>k.length)k=lista[i];}alert('mas largo = '+k);


> //var lista = ["uno","tres","cinco","tres"];
> var k = '';
> for(i in lista) if(lista[i].length>k.length) k = lista[i];
> alert('El elemento más largo es : '+k);
> </script>
>
> En FireFox, Netscape, Opera, Safari. k almacena esto:
> El elemento mas largo es: cinco// esta OK.


No, con el mio Firefox ho : 'ejecutables'


javascript:var cadena = "elemtos(uno), documentos(tres),
portales(cinco),ejecutables(tres)";var lista =
cadena.match(/\(\w*\)/g);var k='';for(i in lista)
if(lista[i].length>k.length)k=lista[i];alert(k);

would have to work fine with other browsers than IE

With IE (por IE) :

javascript:var cadena = "elemtos(uno), documentos(tres),
portales(cinco),ejecutables(tres)";var lista =
cadena.match(/\(\w*\)/g);alert('lista = '+lista);var
k='';for(i=0,n=lista.length;i<n;i++){alert('lista['+i+'] = '+lista[i]);
if(lista[i].length>k.length)k=lista[i];}alert('mas largo = '+k);

> Pero en IE k almacena esto:
> El elemento mas largo es: elemtos(uno), documentos(tres),
> portales(cinco), ejecutables(tres)

(snip)
> . porque??? ayuda porfavor. gracias de antemano Grupo.


Porque quando hace 'for(i in lista)'
IE añade 'input' en primero index
e otros indexes que no sè los que estan.

test :

javascript:var cadena = "elemtos(uno), documentos(tres),
portales(cinco),ejecutables(tres)";var lista =
cadena.match(/\(\w*\)/g);for(in in lista)alert('index =
'+i+'\nlista['+i+'] = '+lista[i]);


so, I think you must do : for(i=0, n=lista.length; i<n; i++)

<script>
var cadena = "elemtos(uno), documentos(tres), portales(cinco),
ejecutables(tres)"
var lista = cadena.match(/(\w*)/g);
//var lista = ["uno","tres","cinco","tres"];
var k = '';
for(i=0, n=lista.length; i<n; i++)
if(lista[i].length>k.length) k = lista[i];
alert('El elemento más largo es : '+k);
</script>



Lo que sigue, utilizando 'for(i in lista)', funciona también con IE :

javascript:var cadena = "elemtos(uno), documentos(tres),
portales(cinco),ejecutables(tres)"; var
lista=cadena.match(/\(\w*\)/g).toString().split(','); var k=''; for(i in
lista) if(lista[i].length>k.length)k=lista[i];alert(k);

lista = lista.toString().split(',');

forces to set 'lista' to an array

--
sm
Reply With Quote


  #10 (permalink)  
Old 09-26-2008, 08:31 PM
Thomas 'PointedEars' Lahn
Guest
 
Posts: n/a
Default Re: Elementos de un array

Jorge wrote:
> SAM wrote:
>> for(i in lista) { }

>
> Hmm, what a lovely 'for..in' !
> I had never applied it to an array.
>
> javascript:a=['0',,,,,,,,'8'], a[4]= '4', n= 0;for (i in a) { n++;
> alert(i+a[i]); };alert(n+' !== '+a.length);
>
> Is it predictable in this case ? the order of 'i', I mean ?


No; read ES3F, 12.6.4.


PointedEars
--
var bugRiddenCrashPronePieceOfJunk = (
navigator.userAgent.indexOf('MSIE 5') != -1
&& navigator.userAgent.indexOf('Mac') != -1
) // Plone, register_function.js:16
Reply With Quote


Reply



Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 04:42 AM.

Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.
Great Seo Blog at SEONOTEPAD.COM