我如何在我的情况下删除一个对象

时间:2014-07-03 20:46:56

标签: javascript

我正在尝试根据obj id删除一个对象。

我有类似

的东西
var array =[];
var id =3;

array [
   {
    id:'1',
    title:'test'
   },
   {
    id:'2',
    title:'tes2'
   },
   {
    id:'3',
    title:'tes3'
   }
]

如何根据id 3. thanks!

删除对象

2 个答案:

答案 0 :(得分:3)

使用filter()

array = array.filter( 
          function( item ) {
            return item.id != id;
          }
        );

或者,要修改数组:

for ( i = 0; i < array.length; ++i )
{
  if (array[i].id == id)
  {
    array.splice(i, 1);
    break;
  }
}

答案 1 :(得分:0)

作为之前发布的答案的替代方案,如果您或您的用户使用的是最新的浏览器,则可以使用以下内容:

function removeByPropertyEquals(haystack, needleProp, needleVal) {
    haystack.forEach(function (obj, index) {
        if (obj[needleProp] === needleVal) {
            return index;
        }
    });
    return -1;
}

var id = 3,
    array = [{
        id: '1',
        title: 'test'
    }, {
        id: '2',
        title: 'tes2'
    }, {
        id: '3',
        title: 'tes3'
    }];

console.log( array );

array.splice(removeByPropertyEquals(array, 'id', '3'), 1);

console.log( array );

JS Fiddle demo

参考文献: