2017-01-01 15 views
0

Я пытаюсь использовать латинскую квадратичную библиотеку для Node.js в цикле, чтобы найти какой-то шаблон, запустите скрипт и через 2 минуты этой ошибка:латина-square.js Максимального размера стеки вызовов превысил

RangeError: Maximum call stack size exceeded

var latinSquare = require("latinsquare"); 
var lookup; 
var loop; 
lookup = ls(); 

console.log("first: "+ lookup); 

/*---------------------------------------------------------------------------------------------------------------------------------*/ 
function find() { 
    lookup = ls(); 
    console.log("loop: " + lookup); 
    if(codeM(000000) == "1558" && codeM(111111) == "8691"){ 
     console.log("find: " + lookup); 
     clearInterval(loop); 
    } 
} 

loop = setInterval(find,500); 
/*---------------------------------------------------------------------------------------------------------------------------------*/ 
function ls(){ 
    var table = []; 
    lookup = latinSquare.generate([0,1,2,3,4,5,6,7,8,9]); 

    for(i=0;i<lookup.length;i++){ 
     for(d=0;d<lookup[i].length;d++){ 
      table.push(lookup[i][d]); 
     } 
    } 
    return table; 
} 
/*---------------------------------------------------------------------------------------------------------------------------------*/ 
function codeM(data){ 
    // this function return a result of mathematic procces. not call another function. 
} 

function padLeft(nr, n, str){ 
    return Array(n-String(nr).length+1).join(str||'0')+nr; 
} 
+0

can not редактирование вопрос! –

+0

coment in first row "// эта функция возвращает результат математических процессов, а не вызывает другую функцию." его ошибка Давайте притворимся, что он не существует –

+1

Есть ли какая-то определенная причина, по которой ваш код имеет двойной интервал? –

ответ

0

Ну ... для поиска шаблона в математической функции, мне нужен этот код ниже, чтобы работать бесконечно. Я новичок в javascript, и я не знаю, как его решить.

var latinSquare = require("latinsquare"); 

var count = 0;

setInterval (функция() {

var table =[]; 

var search = latinSquare.generate([0,1,2,3,4,5,6,7,8,9]); 

for(i=0;i<search.length;i++){ 

    for(d=0;d<search[i].length;d++){ 

     table.push(search[i][d]); 

    } 
} 

count++; 

console.log (кол + "......" + столик);

}, 100);

+0

Ясно, что в приведенном выше коде есть не что иное, как бесконечный цикл, нет функцию для поиска или сравнения чего-либо. Но это код, который я хочу, чтобы он работал, а затем добавляю функцию сравнения –