Вам нужно объявить i
и z
, потому что если нет, вы получите глобальные переменные, и это разрушит итерации с рекурсивными функциями.
Чтобы предотвратить это, и для получения ошибки , вы можете добавить 'strict mode';
в начале кода.
Пожалуйста, посмотрите на ссылку, потому что она также меняет некоторые другие части.
function ZeroOneGen(dataArr, digits, index) {
var i, z;
if (index == digits) {
var str = "";
for (i = 0; i < digits; i++) {
str = str + dataArr[i];
}
console.log(str)
return;
}
for (z = 0; z < 2; z++) {
dataArr[index] = z;
ZeroOneGen(dataArr, digits, index + 1);
}
}
var dataArrTemp = new Array(3);
ZeroOneGen(dataArrTemp, 3, 0);