Cita:
Iniciado por kepawe en el mensaje # 16 ...Lo del condicional no es tan complicado, ... Como ves parece más de lo que es ...
Sí. Como en todos los casos, para entender algo lo primero es no asustarse y luego comenzar a estudiarlo. Gracias
kepawe.
caricatos : tu página de métodos está quedando cada vez mejor. Me sorprendió que no funcionaran bien los
move, y después entendí que era un tema del formulario.
Pero esta objeción junto con tu ejemplo de ordenación de tabla, me dieron un par de ideas.
Para empezar,
sort ordena por caracteres; es decir : que los valores numéricos van a ser interpretados como cadenas, y así un "
27" va a quedar antes que un "
8". Lo que no está mal si queremos simular un orden alfabético, pero no vi un método que ordene valores numéricos de menor a mayor o viceversa.
Por ahora sólo tengo como encontrar el valor mínimo o máximo de una lista de números, y también los elementos más corto y más largo de un
Array
Código:
<HTML>
<HEAD>
<script language= "JavaScript">
var numeros = [0,1,2,3,4,5,6,7,8,9];
var letras = ["A","BB","CCC","DDDD","EEEEE","F"];
Array.prototype.minNumber = function(){
var ini = this[0];
var ary = this;
var str = ary.join("");
var checkNum = str*1;
//var ind;
if(checkNum == str){
for(i=1 ; i<this.length ; i++){
if(this[i]<ini) {
ini=this[i]; /* DEVUELVE EL VALOR DEL ELEMENTO MÁS BAJO */
//ind=i; /* DEVUELVE LA POSICIÓN DEL ELEMENTO MÁS BAJO */
}
}
}
else alert("Al menos un elemento de Array no es numérico.");
return ini;
}
Array.prototype.lengthMinMax = function(){
var minVal = maxVal = this[0];
var minOrgn = maxOrgn = this[0].length;
for(i=1 ; i<this.length ; i++){
if(this[i].length < minOrgn) {minVal = this[i];}
if(this[i].length > maxOrgn) {maxVal = this[i];}
}
var nuevo = [minVal,maxVal];
return nuevo
}
</script>
<style>
input{width:40%}
</style>
</HEAD>
<BODY>
<input type=button value="1,5,9,0,3,7,6,2,4,8" onclick="this.value = numeros.minNumber()"> Muestra el valor mínimo de un Array numérico.
<p>
<input type=button value='A,BB,CCC,DDDD,EEEEE,F' onclick="this.value = letras.lengthMinMax()"> Muestra los valores más corto y más largo de un Array de cadenas.<br>
Si existen 2 elementos con la misma cantidad de caracteres muestra el de índice más bajo.
</BODY>
</HTML>
Para explicar la "segunda idea" voy a corregir algo que escribí más arriba :
sort no ordena alfabeticamente sino por ASCII ( o ANSI). Es decir, que nuestra "Ñ" y las vocales acentuadas van a terminar en cualquier lado. Habría que crear también un
spanishSort(), pero ésto va a ser enormemente más complicado que ordenar números de menor a mayor ...
saludos
furoya