Destructuring in switch statement gives 'variable is not initialized' error

142 Views Asked by At
let chosen = 3;
    let myFriends = [
      { title: "Osama", age: 39, available: false, skills: ["HTML", "CSS"] },
      { title: "Ahmed", age: 25, available: false, skills: ["Python", "Django"] },
      { title: "Sayed", age: 33, available: true, skills: ["PHP", "Laravel"] },
    ];

    // let [x,y,z]=myFriends;
    // let {title:ft,age:fag,available:fav,skills:[,fskill]}=x;
    // let {title:st,age:sag,available:sav,skills:[,sskill]}=y;
    // let {title:tt,age:tag,available:tav,skills:[,tskill]}=z;

    switch (chosen) {
      case 1:
        let [d]=myFriends;
        let {title,age,available,skills:[,skill]}=d;
        console.log(title);
        console.log(age);
        console.log(available?"available":"notAvailable");
        console.log(skill);
        break;
      case 2:
        [,d,]=myFriends;
        ({title,age,available,skills:[,skill]}=d);
        console.log(title);
        console.log(age);
        console.log(available?"available":"notAvailable");
        console.log(skill);
        break;
      case 3:
        [,,d]=myFriends;
        ({title,age,available,skills:[,skill]}=d);
        console.log(title);
        console.log(age);
        console.log(available?"available":"notAvailable");
        console.log(skill);
        break;
      
    }

I tried to change variables name , but every time it tells me that variable is not intialized (I mean variable (d) ) and tells me that variables (title , age skills) cann`t be reached

1

There are 1 best solutions below

0
Saranya On

Declaring the variables within each switch case did not work for me when destructuring data. However, it works to declare the variables as common to all the switch cases.

let chosen = 3;
    let myFriends = [
    { title: "Osama", age: 39, available: false, skills: ["HTML", "CSS"] },
    { title: "Ahmed", age: 25, available: false, skills: ["Python", "Django"] },
    { title: "Sayed", age: 33, available: true, skills: ["PHP", "Laravel"] },
    ];

    // let [x,y,z]=myFriends;
    // let {title:ft,age:fag,available:fav,skills:[,fskill]}=x;
    // let {title:st,age:sag,available:sav,skills:[,sskill]}=y;
    // let {title:tt,age:tag,available:tav,skills:[,tskill]}=z;
    let d;
    let title,age,available,skill;

    switch (chosen) {
    case 1:
        [d]=myFriends;
        ({title,age,available,skills:[,skill]}=d);
        console.log(title);
        console.log(age);
        console.log(available?"available":"notAvailable");
        console.log(skill);
        break;
    case 2:
        [,d,]=myFriends;
        ({title,age,available,skills:[,skill]}=d);
        console.log(title);
        console.log(age);
        console.log(available?"available":"notAvailable");
        console.log(skill);
        break;
    case 3:
        [,,d]=myFriends;
        ({title,age,available,skills:[,skill]}=d);
        console.log(title);
        console.log(age);
        console.log(available?"available":"notAvailable");
        console.log(skill);
        break;
    }