如何在完成后从javascript数组中删除ajax

时间:2012-10-05 18:56:06

标签: javascript arrays ajax variables

如何在数组完成时删除从数组延迟的jQuery?我有:

myarray[key]=$.ajax({

}).done(function(response){

 // work with response,
 // then delete myarray[key];

});

这不起作用:

var myvar=function(){
  if(myvar){
    alert(1);
  }
} 

似乎声明必须完成检查变量是否设置的事件,因此删除变量声明中的变量不应该如何,超时?

1 个答案:

答案 0 :(得分:0)

这取决于myarray是否是数组或对象。如果它是一个对象,你可以做

delete myarray[key];

但如果它是一个数组,那么它会更复杂一些。 John Resig撰写了关于数组元素删除的文章here

如果你想更简单地做,而且它是一个数组,你可以用

删除它
myarray[key] = undefined;

但是你应该注意到myarray在你这样做时不会变小。

$.ajax返回Deferred对象,.done()返回不同的Deferred对象。最理想的是,您需要执行以下操作:

myarray[key]=$.ajax({

});
myarray[key].done(function(response){
 // work with response,
 // then delete myarray[key];
});