Home > Mobile >  Check object variable exists when using object destructuring
Check object variable exists when using object destructuring

Time:04-26

I have a 'getData' function which gets passed a 'data' variable. Inside the function I'm trying to access an object 'data.someObject' which may or may not exist because it comes from an outside library.

What is the best approach to check if it does exist before trying to use it? Also see I'm using object destructuring here aswell.

const getData = (data) => {
    const { name, age } = data.someObject; // someObject may or may not exist
    console.log(name, age);
}

I thought doing this might work:

const { name, age } = data.someObject || {};

But I wasn't sure if that would throw an error.

Thanks

CodePudding user response:

You can use || & if required provide default values while destructuring.

function print(user) {
  const { fname = "Anonymous", lname = "Panda" } = user.fullname || {};

  console.log(`Hello ${fname} ${lname}`);
}

print({ fullname: { fname: "John", lname: "Doe" } });
print({});
print({ fullname: null });

CodePudding user response:

Personally I would put an if statement:

const getData = (data) => {
  if (data.someObject == null) {
    // Here you can return, throw an error or do anything else you might need
  }
  const { name, age } = data.someObject; // someObject may or may not exist
  console.log(name, age);
}
  • Related