Javascript - переменная теряет свое значение и «становится» неопределенной

Кажется, я как-то теряю значение переменной im ...

То, что я пытаюсь сделать, не так важно, поэтому я установил ( Хорошо прокомментирован ) jsFiddle, чтобы показать вам, что я получаю. Также ниже приведен код.

Если кто-то может видеть, что происходит, приветствуется любая помощь:)

См. JsFiddle> http://jsfiddle.net/qNWuV/4/

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('

each1: ' + hab_link_1); //Variable lost? document.write('
each2: ' + hab_link_2 + '
'); //Variable lost? test2 += e + ':' + hab_link_1 + ',' + hab_link_2 + '
'; } document.write('


' + 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('
returned: ' + hab_link); //Variable is intact HERE return hab_link; } else { get_link(count, not); } } link_habs(habs);

Ура
Чарли

7
задан Madara Uchiha 28 August 2011 в 05:37
поделиться