2015-07-12 146 views
0

因此,我不斷添加到數組並推送作品,但所發生的一切是我得到ITERATIONS數組中的許多未定義的對象。我一直試圖把對象工作正常,當我使用它自己的,但是當我試圖把它放在一個數組我得到提前javascript array.push返回undefined

編輯 這裏未定義

function multiCalc() { 
    primeList = []; 
    for (var i = 0; i < (iterations * 2); i += 2) { 
     isPrime = true; 
     var itTest = bigInt(test).add(i); 

     for (var j = bigInt(itTest.divide(2).add(1)); j.compare(2) == 1; j = j.minus(1)) { 
      if ((test.mod(j)) == 0) { 
       isPrime = false; 
      } 
     } 
     primeList.push({ 
      "prime_number": { 
       "testNumber": itTest.toString(), 
       "isPrime": isPrime, 
       "wasTested": true 
      } 
     }); 

    } 
    sendPrime(primeList, multiUrl); 
} 

由於是送黃金功能

function sendPrime(PrimeData, path){ 
    if(stop == false){ 
    $.ajax({ 
     url: path, 
     type: 'post', 
     async: true, 
     dataType: 'json', 
     success: function (data) { 
     test = bigInt(data.testNumber); 
     multiCalc(); 
     // calc(); 
     }, 
     data: PrimeData 
    }); 
} 
+1

是你看到'sendPrime()'函數,你不顯示裏面的未定義值的問題?如果您不顯示如何嘗試使用陣列,我們無法提供幫助。如果你在'for'循環外面添加'console.log(primeList)',你會得到什麼? – nnnnnn

+0

multiCalc看起來不錯。問題可能在sendPrime函數中...? – sfletche

+0

'iterations'變量的值怎麼樣? – adatapost

回答

0

好的我想通了。數組沒有通過ajax發送。我字符串化的數據,然後添加contentType: 'application/json',線,使得軌道會知道它是接收JSON

function sendPrime(primeData, path){ 
    if(stop == false){ 
     console.log(primeData); 
    $.ajax({ 
     url: path, 
     type: 'post', 
     async: true, 
     dataType: 'json', 
     contentType: 'application/json', 
     success: function (data) { 
     test = bigInt(data.testNumber); 
     console.log(test); 
     multiCalc(); 
     // calc(); 
     }, 
     data: JSON.stringify(primeData) 
    }); 
} 
+0

至少你知道了:) – fubbe