Я хотел бы знать, как удалить 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'));
Если вы хотите создать новый массив и не изменять существующий массив:
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}]
Просто удалите его
obj.forEach(function(el){
delete el.boat;
})
//"[{"car":1,"plane":3},{"car":3,"plane":12}]"
Вы не удаляете элементы из массива; вместо этого вы хотите удалить свойства из существующих объектов, которые являются элементами массива.
Используйте оператор delete
для удаления свойств объектов. Поскольку вы не удаляете элементы из массива, вам не нужно будет использовать filter
:
for( var i = 0; i < obj.length; i++ ) {
delete obj[i]['boat'];
}
obj.map( ({car, boat, plane}) => ({car, plane}) )
. Вы не хотите фильтровать массив, вы хотите создавать разные объекты