Вопрос про рекурсию и замыкание
function log(text) { document.write(text) } var n = 2; var k = 2; var arr = []; var j = 0; function gen(pos) { if (pos == n) { log(arr); console.log(arr); log("<br>"); return; } for (var i = 0; i < k; i++) { arr[pos] = i; gen(pos+1); } } gen(0); Не могу понять почему в приведенном коде функции 12| log(arr)и 13| console.log(arr)выводят разные результаты. Может мне кто-нибудь это разъяснить?:-? |
nanoT1m,
и в каком браузере разные? |
Извиняюсь, надо было в других браузерах проверить. В Safari результаты разные.
|
рони,
console.log() в Safari выводит [1, 1] [1, 1] [1, 1] [1, 1] |
var n = 2; var k = 2; var arr = []; var cache = []; var l = 0; function gen(pos) { if (pos == n) { cache[l++] = arr; return; } for (var i = 0; i < k; i++) { arr[pos] = i; gen(pos+1); } } gen(0); console.log(cache[0]) в консоль выводит [1,1], а хотелось бы [0,0] :( в чем же проблема? |
Часовой пояс GMT +3, время: 12:17. |