Как удалить элементы из 2d массива jQuery

0

У меня есть массив в jquery и хотел бы удалить элементы из него на основе поля ID или Value.

 var AccountName = [
            {id: 0,value: "LUCKY'S WINDSCREENS"},
            {id: 1,value: "PALM MOTORS"},
            {id: 2,value: "REFLEX PANELBEATERS & SPRAYPAI"},
            {id: 3,value: "SADAF INVESTMENT T/A YUSUF MOH"}
    ];

Как удалить идентификатор и значение из этого массива?

var id = $('#txtAccountID').val();

for (var i = 0; i < AccountName.length; i++)
{
   if (AccountName[i] != "id") { 
   AccountName.splice(i, 1);
   //break;
   }
}
Теги:
arrays

2 ответа

0

Используйте Array.prototype.filter() (Polyfill необходим для старого браузера).

AccountName = AccountName.filter(function(e) {
  return e.id !== 0;
});

Демонстрация.

0

я предполагаю, что вы хотите удалить объект из массива, если его id или value соответствует значению $('#txtAccountID').val(),

var id = $('#txtAccountID').val();
for (var i = 0; i < AccountName.length; i++){
   for(var key in AccountName[i]){
       if(key ==id || AccountName[i][key]== id){
            AccountName.splice(i,1);
       }
   }
}

См Js скрипки здесь

Если вы хотите сохранить только соответствующий элемент, тогда

var id = 0;
var temp = null;
for (var i = 0; i < AccountName.length; i++){
   for(var key in AccountName[i]){
       if(  key ==id || AccountName[i][key] == id ){
            temp = AccountName[i];
       }
   }
}
AccountName = temp;

Найти демо здесь

  • 0
    Нижний создает объект с идентификатором и значением, но он мне нужен в формате массива, подобном тому, который был опубликован в моем вопросе, так как я использую этот источник для автозаполнения. Иногда может потребоваться возвращать более одного результата, если формат должен выглядеть как [{,}, {,}];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню