How can i get automatically property names from array with rest operator? Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of How can i get automatically property names from array with rest operator? without wasting too much if your time.

The question is published on by Tutorial Guruji team.

I have the following object.

let userInput = {
    "id": "22a52279-cc48-430e-ada6-88a3f67cbb8b",
    "first_name": "test",
    "email": "test@hotmail.com",
    "created_at": "2021-04-06T18:19:01.567Z",
    "salary": null,
    "department_name": null,
    "department_id": null,
    "last_name": null,
    "gender": null,
    "updated_at": "2021-04-06T18:19:01.567Z",
    "address": "ad12",
    "phone": null,
    "city": null,
    "university_name": null,
    "university_city": null,
    "about": null,
    "is_admin": null
}

if i want to get some properties from this object and use them in another object i will do:

 const {first_name, address, phone, city, university_name, university_city, about} = this.userInput;
    this.user = {first_name, address, phone, city, university_name, university_city, about};
    console.log(this.user);

then i get in the user variable this output

{
    "first_name": "test",
    "address": "ad12",
    "phone": null,
    "city": null,
    "university_name": null,
    "university_city": null,
    "about": null
}

to prevent repeating my self – i wanted to store all this needed proeprty names in one array and reuse it so i tried

const getNeededProperties = ["first_name", " address", " phone", " city", " university_name", " university_city", " about"];
const {first_name, address, phone, city, university_name, university_city, about} = this.userInput;
this.user = {...getNeededProperties};

i will get the same output – so basically i store first_name then address etc… as local variables and then i am assaigning them to the user object – i destructure the property names and it is working

but when i try to rest the property names from the array

 const getNeededProperties = ["first_name", " address", " phone", " city", " university_name", " university_city", " about"];
      const {...getNeededProperties} = this.userInput;
      this.user = {...getNeededProperties};

i get error

Cannot redeclare block-scoped variable ‘getNeededProperties’.

Is there some way that i con all of this automatically ?

Answer

You can use reduce for this:

const userInput = {
    "id": "22a52279-cc48-430e-ada6-88a3f67cbb8b",
    "first_name": "test",
    "email": "test@hotmail.com",
    "created_at": "2021-04-06T18:19:01.567Z",
};
const neededProps = ["id", "first_name"];

const user = neededProps.reduce((res, prop) => ({
    ...res, [prop]: userInput[prop]
  }), {});
  
console.log(user);
We are here to answer your question about How can i get automatically property names from array with rest operator? - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji