2011-04-12 49 views
7
var arr = [ 
        {id:2,date:'2010-10-03',des:'goodday'}, 
        {id:3,date:'2011-02-13',des:'badday'}, 
        {id:4,date:'2011-04-03',des:'niceday'} 
        ]; 

现在我想删除{id:3,date:'2011-02-13',des:'badday'},然后改编应该是如何删除对象数组中的项目?

 var arr = [ 
        {id:2,date:'2010-10-03',des:'goodday'}, 
        {id:4,date:'2011-04-03',des:'niceday'} 
        ]; 

我应该怎么办?

回答

15

假设ID字段在你的对象是独一无二的,你可以做以下命令来删除它。在使用该功能Splice

var arr = [ 
     { 
     id: 2, 
     date: '2010-10-03', 
     des: 'goodday'}, 
    { 
     id: 3, 
     date: '2011-02-13', 
     des: 'badday'}, 
    { 
     id: 4, 
     date: '2011-04-03', 
     des: 'niceday'} 
    ]; 

    for(var i=0; i<arr.length; i++){ 
     if(arr[i].id == 3){ 
      arr.splice(i, 1); //removes 1 element at position i 
      break; 
     } 
    } 

console.log(arr); 
//should give you 
//      var arr = [ 
//        {id:2,date:'2010-10-03',des:'goodday'}, 
//        {id:4,date:'2011-04-03',des:'niceday'} 
//       ]; 
0

arr.splice(1,1);将删除该对象在arr[1], 和arr[2]将滑入到位。

0

您可以使用过滤器的方法来达到同样的:

// Your array 
var oArr = [ 
    {id:2,date:'2010-10-03',des:'goodday'}, 
    {id:3,date:'2011-02-13',des:'badday'}, 
    {id:4,date:'2011-04-03',des:'niceday'} 
]; 

// Array with the values to be removed, here I have taken the id 
var oArrToRemove = [2] 

// Using filter method to delete the object 
var oNewArr = arr.filter(ele => { return remArr.indexOf(ele.id) === -1}) 

// The oNewArray will be as follows 
oNewArr = [ 
    {id:3,date:'2011-02-13',des:'badday'}, 
    {id:4,date:'2011-04-03',des:'niceday'} 
]; 
相关问题