У меня есть массив в 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;
}
}
Используйте Array.prototype.filter() (Polyfill необходим для старого браузера).
AccountName = AccountName.filter(function(e) {
return e.id !== 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;
Найти демо здесь