Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.06.2015, 21:47
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

Вопрос про рекурсию и замыкание
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)
выводят разные результаты. Может мне кто-нибудь это разъяснить?
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2015, 22:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

nanoT1m,
и в каком браузере разные?
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2015, 22:06
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

Извиняюсь, надо было в других браузерах проверить. В Safari результаты разные.
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2015, 22:08
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

рони,
console.log() в Safari выводит
[1, 1]
[1, 1]
[1, 1]
[1, 1]
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2015, 22:58
Интересующийся
Отправить личное сообщение для nanoT1m Посмотреть профиль Найти все сообщения от nanoT1m
 
Регистрация: 21.07.2012
Сообщений: 25

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] в чем же проблема?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
еще один вопрос про кнопки и события f0rzik Общие вопросы Javascript 15 19.01.2013 23:19
Вопрос про change vitaly63 Общие вопросы Javascript 1 24.12.2012 10:50
Глупый вопрос про if then. Irish.Tippler Общие вопросы Javascript 9 26.07.2012 12:32
вопрос про анонимную функцию noname1990 Общие вопросы Javascript 6 19.06.2012 11:37
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06