Ver Mensaje Individual
  #14 (permalink)  
Antiguo 02/12/2004, 21:10
kepawe
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 19 años, 8 meses
Puntos: 5
Hola de nuevo a todos.

He cambiado la metódo "move" para que también pueda rotar los elemento a la derecha o izquierda, también otro método para ordenar aleatoriamente los elementos.
He añadido unas funciones que encuentro de gran utilidad para el método sort() que por defecto ordena alfabeticamente los elementos, he puesto comentarios en el código para explicar para que vale cada una.



Código PHP:

<html>
<
head>
<
title>Manipulaci&oacute;n de elementos de un array.</title>
<
script language=JavaScript type=text/javascript>
<!--

/*Sintaxis
nombre_array.move_to("right") - rota  los elementos a la derecha una posición
nombre_array.move_to("left") - rota  elementos a la izquierda una posición
nombre_array.move_to(1,5) - el primer argumento elemento a mover y el segundo
                              la posición.
por ejemplo move_to(1,5) [0,1,2,3,4,5,6] daria este resultado [0,2,3,4,5,1,6]

*/
Array.prototype.move_to = function(){
  
// rota los elementos a la derecha
  
if(arguments[0] == "right"){
    
this.length 1
    b 
0
  
}
  
// rota los elementos a la izquierda
  
else if(arguments[0] == "left"){
    
0
    b 
this.length 1
  
}
  
// mueve un elemento a una posición
  
else{
    
arguments[0]
    
arguments[1]
  }
  
>= this.length this.length 0a
  b 
>= this.length this.length 0b

  
var element_move this[a]
  if(
b){
    for(var 
ctr actr bctr++){
          
this[ctr] = this[ctr+1]
     }
  }
  if(
b){
     for(var 
ctr actr bctr--){
           
this[ctr] = this[ctr-1]
     }
  }
  
this[b] = element_move


}
/* mueve los elementos aleatorimente.
  la Sintaxis - nombre_del_array.random_array() */

Array.prototype.random_array = function(){
var 
ctr 0
while(ctr this.length){
    var 
Math.floor(this.lengthMath.random())
    var 
Math.floor(this.lengthMath.random())
    
this.move_to(a,b)
    
ctr++
  }

}
//  FUNCIONES PARA EL MÉTODO SORT()

// Esta función ordena los números de menor a mayor
/* Solo es valida para array donde todos sus valores
son numericos */
//Sintaxis - nombre_array.sort(numeric_sort_min)
function numeric_sort_min(element1element2){
  return (
element1 element2)

}

// Esta función ordena los números de mayor a menor
/* Solo es valida para array donde todos sus valores
son numericos */
//Sintaxis - nombre_array.sort(numeric_sort_max)
function numeric_sort_max(element1element2){
  return (
element2 element1)

}
// Ordena alfábeticamente pero en sentido inverso
//Sintaxis - nombre_array.sort(reverse_alpha_sort)
function reverse_alpha_sort(element1,element2){
  if(
element1 element2){
    return -
1
  
}
  else if(
element1 element2){
    return 
1
  
}
  else{
    return 
0
  
}

}
//
//-->
</script>



</head>

<body>
<center><div id="numeros"></div></center><br>
<script language=JavaScript type=text/javascript>
<!--


var my_array1 = new Array(0,1,2,3,4,5,6,7,8,9)



function show_array1(){
var msg1=""

    for (var ctr=0; ctr < my_array1.length; ctr++){
        if((my_array1[ctr] === 0) && (ctr != my_array1.length - 1)){msg1+=my_array1[ctr]+ ",".fontcolor("red")}
        else if(ctr == my_array1.length - 1){msg1+=my_array1[ctr]}
        else{msg1+=my_array1[ctr]+ ","}

    }
    document.getElementById("numeros").innerHTML = "my_array1= new Array(".bold().fontsize(6) +
                                                  msg1.bold().fontsize(6) +
                                                  ")".bold().fontsize(6)

}
show_array1()
//-->
</script>


  <form name="form1" onsubmit="return false"><center>
  <input type="button"  value="Rotar a la izquierda" onmouseup="my_array1.move_to('left');show_array1();">
  <input type="button"  value="Ordenar aleatoriamente" onmouseup="my_array1.random_array();show_array1();">
  <input type="button"  value="Rotar a la derecha" onmouseup="my_array1.move_to('right');show_array1();">
  <br>
  <input type="button"  value="Ordenar de mayor a menor" onclick="my_array1.sort(numeric_sort_max);show_array1();">
  <input type="button"  value="Ordenar de menor a mayor" onclick="my_array1.sort(numeric_sort_min);show_array1();"><br>
  Mover el elemento
  <input type="text"  name="el" value="0" size="5" onblur="if(isNaN(parseInt(this.value))){this.value='0'}">
  a la posición
  <input type="text" name="pos" value="5" size="5" onblur="if(isNaN(parseInt(this.value))){this.value='5'}">
  <input type="button"  value="Mover" onmouseup="my_array1.move_to(parseInt(this.form.el.value),parseInt(this.form.pos.value));show_array1();">
  </center>
</form>
</body>
</html> 
Saludos