當陣列或物件的資料一多,每次列出完整資料就會變得很長爾且如果只是想看一兩筆資料的話也比較難找。解構可以將需要的屬性直接取出來。
const Torterra ={
HP: 95,
Attack: 109,
Defense: 105,
SpecialAttack: 75,
SpecialDefense: 85,
Speed: 56,
Total:525,
Type: "Grass/Ground",
ID:389,
poke_name: "Torterra",
}
const {Type, poke_name, ID} = Torterra
console.log(Type)
console.log(poke_name)
console.log(ID)

想換成一個變數名稱時,可以在後面加上冒號:
const { SpecialAttack: SPA } = Torterra;
console.log(SPA);

陣列解構則是按照位置。第一個名稱取得索引 0,第二個名稱取得索引1。
const all_type=["Grass","Ground","Fire","Water","Electric","Psychic","Ice","Dragon","Dark","Fairy"]
const [First,Second,Third] = all_type
console.log(First)
console.log(Second)
console.log(Third)

const { level } = Torterra;
console.log(level);

const { level = "LV1" } = Torterra;
console.log(level);
如果資料不存在時,可以在一開始就給上預設值。如果不設的話當資料找不到時會顯示undefined時,這時候預設值才會補上。
還有一種用法為...,能夠將物件的內容進行複製,在最後的添上的level,則是在可以複製的物件中,補上新的屬性,我們這邊就可以看看複製物件與原物件之間的差別
const copypoke = { ...Torterra, level: 100 };
console.log(copypoke);
console.log(Torterra);
