2012-02-20 1 views
0

Я собираю список пользователей для каждого запроса и толкая список пользователей в массивы, как показано ниже:Сравнить и удаление элементов в массиве JQuery объекты

$.each(data, function (i, item) { 
    jQuery.each(array, function (index, data) { 
     if (data.UserId == user.Id) { 
      //do nothing 
     } 
    }); 

    else{ 
     array.push(UserId:user.Id); 
    } 

}); 

Тогда я отправляю эти данные на сервер :

jQuery.ajax({ 
    cache: false, 
    type: "GET", 
    url: "Handler.ashx", 
    contentType: "application/json; charset=utf-8", 
    data: { UsersData: JSON.stringify(array) }, 
    dataType: "json" 
}); 

Теперь в следующий раз, я должен найти объект как предыдущие и удалить пользователь, которые не представлены в списке пользователей, и я должен отправить в запрос. Пожалуйста, пусть кто-нибудь скажет мне, как добавить список пользователей в массив и удалить пользователей из массива, которые не входят в список пользователей.

ответ

1

Если у вас есть массив данных, которые вы хотите удалить некоторые от вы можете использовать метод JQuery filter (source) или даже лучше filter метод массива (source).

Примечание: метод Array filter (наряду с картой, сокращением и несколькими другими) является частью ECMAScript 5 и не поддерживается в некоторых старых браузерах (в основном, более старых IE). Есть много прокладки там, хотя, и mdn docs все показывают, как реализовать методы самостоятельно (but here's a good shim if you want them all).

Вот как вы бы использовать:

var array = [1,2,3,4,5,6]; 
var filteredArray = array.filter(function (item /*current item in the array*/) { 
    return item % 2; //return a boolean 
}); 
console.log(filteredArray); // [1,3,5] 

Вы затем подмножество вы можете передать в ваш метод AJAX.

+0

Просто помните, что Array.filter не поддерживается в IE7 и ниже, так что если нужна поддержка IE7 либо использовать метод JQuery, либо использовать что-то вроде подчеркивания - или просто сделать это в цикле. –

+0

@DougNeiner true, я обновил ответ с этим разъяснением –

+0

как сравнить два массива и как удалить элемент? – Kalaivani

0

JavaScript предлагает несколько способов легко добавить или удалить из массивов.

// add "7" to the array 
var nums = [1,2,3,4,5,6]; 
nums.push(7); 

// remove "3" from the array (index position #2) 
nums.splice(2,1); 

// find "5" and remove it 
nums.splice(nums.indexOf(5), 1); 
Смежные вопросы