javascript array.push返回未定义的
所以我不断地添加到一个数组中,并推送工作,但所发生的是我在数组中得到了许多未定义的对象。我一直试图推送的对象在我单独使用它时效果很好,但是当我试图将它放入数组时,我没有定义它javascript array.push返回未定义的,javascript,arrays,object,Javascript,Arrays,Object,所以我不断地添加到一个数组中,并推送工作,但所发生的是我在数组中得到了许多未定义的对象。我一直试图推送的对象在我单独使用它时效果很好,但是当我试图将它放入数组时,我没有定义它 function multiCalc() { primeList = []; for (var i = 0; i < (iterations * 2); i += 2) { isPrime = true; var itTest = bigInt(test).add(i)
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);
}
好吧,我知道了。数组没有通过ajax发送。我对数据进行了字符串化,然后添加了
contentType:'application/json',
行,以便rails知道它正在接收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)
});
}
问题是在
sendPrime()
函数中看到未定义的值时没有显示?如果您不演示如何使用阵列,我们将无法帮助您。如果在外部for
循环之后添加console.log(primeList)
会得到什么?multiCalc看起来不错。问题可能出在sendPrime函数中…?关于iterations
变量的值呢?至少您已经解决了:)
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)
});
}