Cita:
Iniciado por zerokilled buenas...
@cronos, que tal! estaba observando el codigo y entiendo la idea que tienes: restaurar el array por el original cuando se vacia. lo cierto es que no ocurre asi puesto que los tipos de datos complejos se pasan como referencia y no copia. es decir,
arr es una referencia de
fdw. para hacer una copia de un array puedes utilizar cualquier funcion que devuelva un nuevo array, el mas apropiado
concat.
Código:
var a = [true, 'string', 0], b = a.concat(); // crear array y copiar ;
a.shift(); // eliminar un elemento de un array ;
alert("a: "+ a +"\nb: "+ b);
Hola ZK!
No sabía eso! O.O ¿Qué sugieres entonces? Tengo esto pero no funciona:
Código Javascript
:
Ver originalvar fdw = ['uno', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 'siete'], arr = fdw;
function noRepetir(list){
arr = arr.length ? arr : list.concat();
var num = Math.floor(Math.random()*arr.length), str = arr[num];
arr.splice(num, 1);
return str;
}
for(i=0; i<14; i++){
var txt = (noRepetir(fdw));
document.write(txt+'<br />');
}
Saludos (: