loading............
Bueno yo hice la prueba :D con
200000 elementos :D. Por favor use protector de ojos para probar jejejejeje.
http://maborak.com/incubator/arr.html?1 http://maborak.com/incubator/arr.html?2 http://maborak.com/incubator/arr.html?3 http://maborak.com/incubator/arr.html?4
A proposito CALISCO copiaste mal los codigos por eso los scripts de caricatos devolvian 0 o 1 ms
Este es el archivo final
Código PHP:
<html>
<head>
<script type="text/javascript">
/**
* @author xifox
*/
Array.prototype.valid=function(valid)
{
valid = valid || false;
for(var i=0,j=1;i<this.length;i++)
{
var o = this.length-j;
//console.info("i="+i+":"+this[i]);
//console.info("o="+o+":"+this[o]);
if(this[i]!=valid || this[o]!=valid)
{
return false;
}
else if(i>o)
{
return true;
}
j+=1;
}
return true;
};
modo = (document.location).toString().split ('?')[1].substr ((document.location).toString().split ('?')[1].length - 1, 1);
txtModo = ['Random ', 'Todos True', 'Todos False', 'Todos True + 1 False', 'Todos False + 1 True']
var condiciones = new Array(200000);
document.write ('<h3>Modo ' + txtModo[modo] + '</h3>');
// relleno el array
for (var i = 0, elementos = condiciones.length; i < elementos; i++) {
switch (modo) {
case '0':
condiciones[i] = new Boolean(Math.round(Math.random() * 1.5));
break;
case '1':
condiciones[i] = new Boolean (true);
break;
case '2':
condiciones[i] = new Boolean (false);
break;
case '3':
condiciones[i] = new Boolean (true);
break;
case '4':
condiciones[i] = new Boolean (false);
break;
}
}
switch (modo) {
case '3':
condiciones.push (new Boolean (false));
break;
case '4':
condiciones.push (new Boolean (true));
break;
}
//console.log (modo, condiciones);
function ejecutarPrueba(titulo, codigo) {
var ini = new Date().getTime();
var resultado = codigo();
var tardanza = (new Date().getTime())-ini;
document.write("<p>Segun <b>"+titulo+"</b> el resultado es <b>"+resultado+"</b> y ha tardado en sacarlo <span id=\"tardanza\">"+tardanza+" ms</span>.</p>");
}
ejecutarPrueba(" maborak con doble busqueda devuelve false si encuentra un false en el Array:", function() {
return condiciones.valid(true);
}
);
ejecutarPrueba( "Con bucle y devolviendo false si hay false", function() {
for(var i=0, elementos = condiciones.length; i<elementos; i++)
if( condiciones[i] == false )
return false;
return true;
}
);
ejecutarPrueba( "Con indexOf y mirando si existe \"false\" ", function() {
return condiciones.toString().indexOf("false") > -1;
}
);
/*
// Me da error: Too much recursion ¿?
ejecutarPrueba( "Con eval y juntando todo el array con &&", function() {
return eval("new Boolean( "+condiciones.join(" && ")+ ")");
}
);
*/
ejecutarPrueba("Con bucle y haciendo valorAcumulado = valorAcumulado && actual", function() {
for(var i=0, elementos = condiciones.length, valorAcumulado = true; i<elementos && valorAcumulado==true; i++)
valorAcumulado = valorAcumulado && condiciones[i];
return valorAcumulado;
}
);
ejecutarPrueba("Con sort() de valores lógicos, tomando el primero", function() {
return condiciones.sort()[0];
}
);
ejecutarPrueba("Con una cadena, concatenando un asterisco por cada false", function() {
for(var i = 0, elementos = condiciones.length, str = ""; i < elementos; str += (condiciones[i]) ? "": "*", i++)
{}
return str != "";
}
);
ejecutarPrueba("Creando un array con cadenas de 0 y 1 caracter, según condición", function() {
for(var i = 0, elementos = condiciones.length, str = new Array(); i < elementos; str[i] = (condiciones[i]) ? "" : "*", i++)
{}
return str.join("") != "";
}
);
</script>
</head>
<body></body></html>
connection closed.