Chciałbym wiedzieć, jak usunąć boats z mojej tablicy.

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


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

Próbowałem użyć Array.prototype.filter()

console.log(obj.filter(el => el (how to get el name) === 'boat'));
1
debugmode 26 czerwiec 2017, 23:27

3 odpowiedzi

Najlepsza odpowiedź

Jeśli chcesz utworzyć nową tablicę i nie zmodyfikuj istniejącej tablicy:

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
sidanmor 26 czerwiec 2017, 20:32

Po prostu go usuń

obj.forEach(function(el){
  delete el.boat;
})
//"[{"car":1,"plane":3},{"car":3,"plane":12}]"
0
Denis Matafonov 26 czerwiec 2017, 20:30

Nie usuwasz elementów z tablicy; Zamiast tego chcesz usunąć właściwości z istniejących obiektów, które mają być elementy tablicy.

Użyj operatora delete, aby usunąć właściwości z obiektów. Ponieważ nie usuwasz elementów z tablicy, nie musisz używać filter ani:

for( var i = 0; i < obj.length; i++ ) {
    delete obj[i]['boat'];
}
0
Dai 26 czerwiec 2017, 20:29