Вопрос про рекурсию и замыкание
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, время: 04:06. |