Remove specific properties from Array objects in Node.js

Viewed 8191

For example I have this array, if I stringfy it it would be like this:

[{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"},{"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}]

How can I do for remove from the 2 cars: the doors and price. And only leave in the array "car" and "id"? For example:

[{"car":"Toyota","ID":"1"},{"car":"Chevrolet","ID":"2"}]

Thank you!

7 Answers

let arr = [{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"},{"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}]

let arr1 = arr.map(({car, ID}) => ({car, ID}));
let arr2 = arr.map(({Doors, price, ...remainingAttrs}) => remainingAttrs);

console.log('arr1:', arr1);
console.log('arr2:', arr2);

With ES6 syntax, you can deconstruct each object to create new one without writing a loop.

In your case, total number of fields remaining is same as the total number of deleted Following are the two approaches:

  • If less number of fields are to be preserved, then you can go with:

const arr1 = arr.map(({car, ID}) => ({car, ID}))

  • If less number of fields are to be removed, then you can go with:

const arr2 = arr.map(({Doors, price, ...remainingAttrs}) => remainingAttrs)

Adding to all other answers

Cleaner approach using ES6 syntax

var originalArray =[{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"},{"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}];

var immutableArray = originalArray.map(({Doors, price, ...rest})=> rest);

console.log(immutableArray);

Adding to the answers, with ES6 and to avoid mutation and some ESlint issues.

const Array = [{"car":"Toyota","ID":"1", "Doors": "4", "price": "20.000"}, 
              {"car":"Chevrolet","ID":"2", "Doors": "2", "price": "15.000"}];
const newArray = Array.map((object) => {
             const {car, ID} = object;
             return {car, ID};
});
Related