2017-06-26 7 views
1

Ich möchte wissen, wie boats aus meinem Array entfernen.Entfernen Sie Elemente aus Array nach Name

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


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

Was habe ich versucht, ist Array.prototype.filter()

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

Sie wollen 'obj.map (({Auto, Boot, Flugzeug}) => ({Auto, Flugzeug}))'. Sie möchten das Array nicht filtern, Sie möchten verschiedene Objekte – Bergi

Antwort

0

Wenn Sie neue Array erstellen möchten und nicht Ihre bestehende zu ändern: Wie Sie nicht Elemente aus einem Array entfernt werden Sie nicht filter entweder verwenden müssen Array:

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}] 
+0

korrigieren, ich möchte mein vorhandenes Array nicht ändern. @sidanmor - wie kann das skalieren, wenn es 50+ Eigenschaften gibt? – debugmode

0

Sie sind nicht Elemente zu verwenden, aus einem Array zu entfernen; Stattdessen möchten Sie Eigenschaften aus vorhandenen Objekten entfernen, bei denen es sich um Array-Elemente handelt.

Verwenden Sie den Operator delete, um Eigenschaften von Objekten zu entfernen.

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

einfach löschen

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