Как удалить элемент из массива объекта в jquery - PullRequest
1 голос
/ 20 февраля 2012

Как удалить элемент из объекта массива 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);
    }
})

Может кто-нибудь сказать мне, где я здесь не так?

Ответы [ 2 ]

6 голосов
/ 20 февраля 2012

Вы должны попробовать это, чтобы удалить элемент из массива в 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)

4 голосов
/ 20 февраля 2012

Вы используете значение в 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);
  }
});

У вас могут возникнуть проблемы с удалением элементов из массива, который вы в настоящий момент зацикливаете, хотя ...

...