簡體   English   中英

按名稱從數組中刪除元素

[英]Remove elements from array by name

我想知道如何從我的陣列中移除boats

var obj = [
    { car: 1, boat: 2, plane: 3  },
    { car: 3, boat: 9, plane: 12  }
];


// Desired output
[
   { car: 1, plane: 3 },
   { car: 3, plane: 12 }
];

我試過的是使用Array.prototype.filter()

console.log(obj.filter(el => el (how to get el name) === 'boat'));

你沒有從數組中刪除元素; 相反,您希望從現有對象中刪除屬性,這些對象恰好是數組元素。

使用delete運算符從對象中刪除屬性。 由於您沒有從數組中刪除元素,因此您不需要使用filter

for( var i = 0; i < obj.length; i++ ) {
    delete obj[i]['boat'];
}

只需刪除它

obj.forEach(function(el){
  delete el.boat;
})
//"[{"car":1,"plane":3},{"car":3,"plane":12}]"

如果要創建新陣列而不是修改現有陣列:

var obj = [
    { car: 1, boat: 2, plane: 3  },
    { car: 3, boat: 9, plane: 12  }
];

var newArr = obj.map(e => ({car: e.car, plane: e.plane}));
// newArr = [{car: 1, plane: 3},{car: 3, plane: 12}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM