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

发布于 2025-01-07 15:37:29 字数 525 浏览 1 评论 0原文

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

我使用的拼接方法如下。但它对 array[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);
    }
})

谁能告诉我我错在哪里?

How to remove item from jquery array object.

I used splice method as follows. But it slice next item of array[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);
    }
})

Can anyone tell me where i am wrong here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

简单爱 2025-01-14 15:37:29

您应该尝试在 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);

检查此链接以了解更多信息:从 javascript 数组中删除元素的干净方法(使用 jQuery、coffeescript)

You should try this to remove element from array in 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);

Check this Link for more : Clean way to remove element from javascript array (with jQuery, coffeescript)

往日 2025-01-14 15:37:29

您正在使用 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);
  }
});

不过,从当前循环的数组中删除项目可能会遇到问题......

You are using the value in user as index, i.e. array[i], instead of the value 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);
  }
});

You may get problems from removing items from the array that you are currently looping, though...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文