Ver Mensaje Individual
  #29 (permalink)  
Antiguo 15/12/2004, 15:16
kepawe
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 20 años, 3 meses
Puntos: 5
Hola de nuevo
He añadido el método quicksort para mejorar el script.

<script language="JavaScript" type="text/javascript">
<!--
function comparate(m,dc){
if(m == dc) return 0
else if(m < dc) return -1
else if(m >dc) return 1
}

function quicksort( m, mo, inf, sup){
var izq,der,mitad,x,y
var izq = inf
var der = sup
var mitad = m[Math.floor((izq + der) / 2)]
do{
while (comparate(m[izq],mitad)< 0 && izq < sup) izq++
while (comparate(mitad,m[der])< 0 && der > inf) der--
if (izq <= der){
x = m[izq]; y = mo[izq]
m[izq] = m[der];mo[izq] = mo[der]
m[der] = x;mo[der] = y
izq++; der--
}
}

while (izq <= der){
if (inf < der) quicksort(m,mo, inf, der)
if (izq < sup) quicksort(m,mo, izq, sup)}
}


Array.prototype.spanish_sort = function(){
//Creamos este array para poblarlo con los elementos del array original
var temp_array = new Array()
// Poblamos el array temp_array con los elementos de array queremos ordenar
for(var ctr = 0; ctr < this.length ; ctr++){
temp_array[ctr] = this[ctr]
// Sustituimos las vocales acentuadas y la ñ (mininusculas)
temp_array[ctr] = temp_array[ctr].toString().replace(/á|é|í|ó|ú|ñ/g,function (str,offset,s) {
str =str=="á"?"a{":str=="é"?"e{":str=="í"?"i{":str=="ó "?"o{":str=="ú"?"u{":str=="ñ"?"n{":"n{"
return (str)
}
)
//Sustituimos las vocales acentuadas y la ñ (mayusculas)
temp_array[ctr] = temp_array[ctr].toString().replace(/Á|É|Í|Ó|Ú|Ñ/g,function (str,offset,s) {
str =str=="Á"?"A{":str=="É"?"E{":str=="Í"?"I{":str=="Ó "?"O{":str=="Ú"?"U{":str=="Ñ"?"N{":"N{"
return (str)
}
)
}
// ordenamos

quicksort(temp_array,this,0, this.length -1)


}



//-->
</script>


He pensado que seria util un método para extraer un subconjuntos de elementos según las letras o
números, si modificar el array original.Por ejemplo en un array númerico:

var numeros = [1,2,20,4,200,6]
var numero1 = numeros.extraer(4,21)

Extraeria los numeros entre 4 y 21.

Con las letras sería algo parecido.

var letras = ["coche","avión","león"]
var letras1 = letras.extraer("a")
var letras2 = letras.estraer("a","d")
La variable letras1 extraria todos los elementos que empiecen por "a" o "á"
La variable letras2 extraria todos los elementos comprendidos entre "a" y "d".

Si lo consiguo lo envio.

Saludos