que parece ser de alguna manera perder el valor de un ajuste variable de im ...Javascript - Variable perder su valor y "llegar a ser" indefinido
Lo que estoy tratando de hacer no es tan importante, por lo que he establecido a (Bien comentado) jsPara mostrarle lo que estoy obteniendo. También el código está debajo.
Si alguien puede ver que hay de nuevo cualquier ayuda se agradece :)
Ver jsFiddle>http://jsfiddle.net/qNWuV/4/ < recomiendo que tome un vistazo aquí
var habs = ["417,77", "410,363", "388,433", "262,435", "262,210", "391,101", "384,183", "61,114", "331,171", "164,433", "361,248", "302,329", "154,307", "410,350", "173,298", "308,429"]; //just an array of co-ords for another part of my app. Only the .length is used below.
//############################
// NOTE: as this problem depends on random numbers you MAY not see it. If "undefined" is ANYWHERE in the Result, the problem is occurring, otherwise re-run the code.
//############################
function link_habs(habs) {
var test2 = '';
var hab_length = habs.length;
for (var e in habs) {
var hab_link_1 = get_link(hab_length, e + ',');
var hab_link_2 = get_link(hab_length, e + ',' + hab_link_1);
document.write('<br /><br />each1: ' + hab_link_1); //Variable lost?
document.write('<br />each2: ' + hab_link_2 + '<br />'); //Variable lost?
test2 += e + ':' + hab_link_1 + ',' + hab_link_2 + '<br />';
}
document.write('<br /><br /><br />' + test2);
}
function get_link(count, not) {
var nots = not.split(',');
for (var i in nots) { nots[i] = parseInt(nots[i], 10); }
var hab_link = Math.floor(Math.random() * count);
if (nots.indexOf(hab_link) === -1) {
document.write('<br />returned: ' + hab_link); //Variable is intact HERE
return hab_link;
} else {
get_link(count, not);
}
}
link_habs(habs);
Saludos
Charlie
Puede deshacerse de la recursión en 'get_link'. Suelta la cláusula else de la instrucción if y ajusta el cuerpo del método con 'while (1) {...}'. –
el hecho de que haya aceptado una respuesta soluciona esta pregunta. no hay necesidad de agregarlo en el título. –
Realmente no veo por qué es importante, pero está bien, no volveré a hacerlo ... –