【发布时间】:2020-01-18 02:48:17
【问题描述】:
我有一个初始化的数组
var detail = [];
// Have also tried var detail = new Array;
在我的其余代码中,我通过以下方式循环创建一个对象的数据集
while(true) {
var tempObj = {
qty : "",
size : "",
adr : "",
dir : ""
}
// Some Logic
tempObj.qty = val;
tempObj.size = val;
tempObj.adr = val;
tempObj.dir = val;
detail.push(tempObj);
}
然后,当我尝试 JSON.Stringify 我的详细数组以通过 AJAX 请求发送时,它返回一个空白数组 []。这也可以在下面的控制台屏幕截图中看到。
注意:底部的缩进将原型称为对象是因为屏幕截图来自我试图发送到服务器的对象。该对象中还有其他非基于数组的数据。我想对数组进行字符串化,以便正确发送到服务器。
是什么导致了这种行为,我该如何纠正它?
编辑 1:执行 JSON.stringify(detail)
var requestObj = {
field1: “a”,
field2: “b”,
field3: “c”,
data: JSON.stringify(detail)
}
编辑 2:添加完整的代码块
$("#submit-button").click(function() {
var reqDate = $("#reqDate").val();
var wonum = $("#wonum").val();
var svc = $("#svc").val();
var complaint = $("#complaint").val();
var comments = $("#comm").val();
var detail = new Array;
var topValid = false;
$(".tb-rw").each(function() {
var qty = $(this).find(".quantity");
var size = $(this).find(".size");
var adr = $(this).find(".address");
var dir = $(this).find(".direction");
var mgk = $(this).find(".mgKey");
var tempObj = {};
if(fail == true || topValid == true) {
alert("Please Make Sure all Inputs are Filled Out");
return;
} else {
//tempArr.push(qty.val(), size.val(), dir.val());
tempObj.qty = qty.val();
tempObj.size = size.val();
tempObj.dir = dir.val();
}
findSimilarJobs(adr.val(), mgk.val(), function(data) {
if(data != "clear") {
console.log("FAILED VALIDATION");
console.log(data);
adr.css('border-color', 'red');
alert("Please Make Sure all Addresses are Valid");
return;
} else {
//tempArr.push(adr.val());
tempObj.adr = adr.val();
}
detail.push(tempObj);
});
});
console.log("Preparing to send!");
var requestData = {
"requestedDate": reqDate,
"svc": svc,
"wonum": wonum,
"complaint": complaint,
"comment": comments,
"data": JSON.stringify(detail)
};
console.log(requestData);
console.log(JSON.stringify(detail));
});
【问题讨论】:
-
您可以发布执行
stringify的部分吗?查看整个流程,我们可以弄清楚。 -
什么打破了循环?你能发布你的实际代码而不是sn-ps吗?
-
我正在遍历一个类的实例。因此,一旦我完成所有实例,循环就会中断。
-
只要您问题中的代码没有重现问题,就很难为您提供帮助。
-
听起来
findSimilarJobs是异步的,在这种情况下,您需要阅读:stackoverflow.com/questions/14220321/…
标签: javascript arrays json javascript-objects