如何删除2d数组jQuery中的项目

时间:2014-01-22 10:04:30

标签: javascript jquery arrays

我在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"}
    ];

如何删除此数组中的id和值?

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

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

2 个答案:

答案 0 :(得分:0)

我想你想要从数组中移除对象,如果它的id或值与$('#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 fiddle here

如果你想只保留匹配的元素,那么

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;

查找演示here

答案 1 :(得分:0)

使用 Array.prototype.filter() (旧浏览器需要Polyfill。)

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

The demo.