如何在jquery中从数组对象中删除项

如何在jquery中从数组对象中删除项,jquery,arrays,object,splice,Jquery,Arrays,Object,Splice,如何从jquery数组对象中删除项 我使用的拼接方法如下。但它会切片数组[i]的下一项 $.each(array, function (i, item) { var user = array[i]; jQuery.each(array2, function (index, idata) { debugger if (idata.Id == user.UserId) { tempFlag = 1;

如何从jquery数组对象中删除项

我使用的拼接方法如下。但它会切片数组[i]的下一项

    $.each(array, function (i, item) {
    var user = array[i];
    jQuery.each(array2, function (index, idata) {
        debugger
        if (idata.Id == user.UserId) {
            tempFlag = 1;
            return false; // this stops the each
        }
        else {
            tempFlag = 0;
        }
    });

    if (tempFlag != 1) {
     //removes an item here

        array.splice(user, 1);
    }
})

有人能告诉我哪里错了吗?

您使用
user
中的值作为索引,即
array[i]
,而不是
i
中的值

$.each(array, function (i, item) {
  var user = array[i];
  jQuery.each(array2, function (index, idata) {
    debugger
    if (idata.Id == user.UserId) {
      tempFlag = 1;
      return false; // this stops the each
    } else {
      tempFlag = 0;
    }
  });

  if (tempFlag != 1) {
    //removes an item here
    array.splice(i, 1);
  }
});

从当前正在循环的数组中删除项可能会出现问题,不过…

您正在使用
user
中的值作为索引,即
array[i]
,而不是值
i

$.each(array, function (i, item) {
  var user = array[i];
  jQuery.each(array2, function (index, idata) {
    debugger
    if (idata.Id == user.UserId) {
      tempFlag = 1;
      return false; // this stops the each
    } else {
      tempFlag = 0;
    }
  });

  if (tempFlag != 1) {
    //removes an item here
    array.splice(i, 1);
  }
});

从当前正在循环的数组中删除项可能会出现问题,不过…

您应该尝试在jQuery中从数组中删除元素:

jQuery.removeFromArray = function(value, arr) {
    return jQuery.grep(arr, function(elem, index) {
        return elem !== value;
    });
};

var a = [4, 8, 2, 3];

a = jQuery.removeFromArray(8, a);

查看此链接了解更多信息:

您应该尝试在jQuery中从数组中删除元素:

jQuery.removeFromArray = function(value, arr) {
    return jQuery.grep(arr, function(elem, index) {
        return elem !== value;
    });
};

var a = [4, 8, 2, 3];

a = jQuery.removeFromArray(8, a);

查看此链接以了解更多信息:

这是干净的,但不适用于当前形式的问题,因为代码不仅查找数组中的项,还查找数组中的项,其中另一个数组包含一个属性对应于该项属性的项。这是干净的,但不适用于当前形式的问题,因为代码不仅查找数组中的项,还查找数组中的项,其中另一个数组包含一个项,其中一个属性对应于该项的属性。