我有这段代码
var customer_number = $("#customer_number").val();
var data = <?php if(isset($questions)) {echo $questions; } else {echo '"";';} ?>
var records = [];
$.each(data, function(key,value) {
$.ajax({
url: "api/suppression/checkifsuppressed",
type: 'GET',
data: {'customer_number':customer_number, 'columnheader' : value.columnheader},
success: function(result){
if(parseInt(result) >= 1)
{
data.splice(key , 1);
}
}});
});
$.each(data, function(key,value) {
records.push({
agebracket: value.agebracket,
agerestriction: value.agerestriction,
child_count: value.child_count,
child_enable_response: value.child_enable_response,
child_sort_num: value.child_sort_num,
columnheader: value.columnheader,
costperlead: value.costperlead,
created_at: value.created_at,
deliveryassignment: value.deliveryassignment,
id: value.id,
is_child: value.is_child,
isenabled: value.isenabled,
ownhomeoptions: value.ownhomeoptions,
ownhomerestriction: value.ownhomerestriction,
parent_colheader: value.parent_colheader,
po_num: value.po_num,
postcodeexclusion: value.postcodeexclusion,
postcodeinclusion: value.postcodeinclusion,
postcoderestriction: value.postcoderestriction,
question: value.question,
sortorder: value.sortorder,
telephoneoptions: value.telephoneoptions,
telephonerestriction: value.telephonerestriction,
updated_at: value.updated_at,
parent_enable_response: value.parent_enable_response,
child_lead_respponse: value.child_lead_respponse,
});
});
console.log("The new data is..");
console.log(data);
console.log("The new records is..");
console.log(records);
我正在做的是我有变量data
,其中包含内容,让我们说两条记录。正如你所看到我有两个$.each
循环我的问题是,那两个循环是否同时被执行?我在第一个$.each
中拥有的是我循环所有data
的记录然后为每个记录我正在进行ajax调用以检查数据库中的某些内容,如果数据库返回1或大于1我将删除data
数组中的当前数据。所以我做了一个测试。
data
有两个记录,并且将满足第一个$.each
中的条件,该条件将删除数组中的一个数据。
然后在我的第二个$.each
中,我只是在其中获取data
变量循环,无论其内容如何,我只是将其复制到我的records
数组中。但是当我运行代码时,我得到了这个
正如您所看到的,data
现在有1条我预期的记录,因为它满足第一循环中的一个条件。但是在我的records
数组的结果中,为什么它仍然有2条记录呢?它是否获得了data
的原始值,其中包含两条记录?它应该是1,因为在第一个循环中我已经修改了data
数组?此代码将在页面加载时运行。
我是jQuery的新手。