Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/01/2014, 12:48
DoHITB
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 1 mes
Puntos: 33
Mayor rendimento en tratamiento de arrays

Buenas,

Tengo una duda técnica, a ver si me podéis ayudar:

Estoy ordenando un array con una función general. Ésta acepta un parámetro para decidir si es de mayor a menor o de meno a mayor.

Entonces, se me ocurren dos alternativas:

Código Javascript:
Ver original
  1. //suponemos que los datos a comparar son datoA y datoB
  2. if(mayorAmenor){
  3.   r = '>='
  4. }else{
  5.   r = '<='
  6. }
  7.  
  8. if(eval('datoA'+r+'datoB')){
  9.   //datoA es mayor
  10. }

frente a una ordenación "estándar", digamos siempre de mayor a menor, y luego hacer:

Código Javascript:
Ver original
  1. //ordenas el array, guardado en miArray
  2.  
  3. if(menorAmayor){
  4.   miArray.reverse();
  5. }

Se que el "eval()" está mal visto, pero en este caso me va muy bien; por otra parte no se si consume más que el "reverse"... puesto que teóricamente el 50% de los casos puede necesitar un "reverse"...

¿Qué daría mayor rendimiento (es decir, no me vale eso de "el segundo porque no usa eval()")?

Saludos y gracias.