Tassavur qilaylik bizda shunday
array bor:const mevalar = ["olma", "behi", "nok", "gilos"];
Agarda shu to'rtta elementni siklsiz har birini consolega chiqarmoqchi bo'lsak shunday usuldan foydalanar edik:
const olma = mevalar[0];
const behi = mevalar[1];
const nok = mevalar[2];
const gilos = mevalar[3];
console.log(olma, behi, nok, gilos)
Ko'rib turganingizdek bu kodlarni ko'paytirishga sababchi bo'lmoqda. Buni esa biz Js Destructuring osonroq qilishimiz mumkin.
Destructuring bilan:
const [apple, behi, nok, cherry] = ["olma", "behi", "nok", "gilos"];
console.log(apple, behi, nok, cherry)
Ushbu holatda biz
array nomi o'rniga [] qavslar ichiga har bir element uchun ixtiyoriy nom kiritishimiz kerak. Manga faqat boshidagi ikkita elementni o'zi yetadi qolganlari
array bo'lib qaytaversin deysizmi? Uni ham yechimi bor:const [apple, behi, ...boshqaMevalar] = ["olma", "behi", "nok", "gilos"];
console.log(apple, behi, boshqaMevalar)
Ushbu holatda biz
... (rest operatori)dan foydalanishimiz kerak. boshqaMevalar listida esa bizga qolgan elementlarni arrayi qaytadi. Buni albatta faqat
array bilan emas object bilan ham qilsa bo'ladi. Tassavur qilaylik bizda shunday
object bor:const person = {
name: "Azizbek",
age: 20,
job: "Developer"
}Buni destructuring qilish uchun esa shunday tarzda yozamiz:
const {name, age, job} = {
// ...
}
console.log(name, age, job)Bu holatda esa biz
obj nomi o'rniga endi {} qavslardan foydalanishimiz kerak va har bir element uchun mos kalit so'zni kiritishimiz kerak. Objectni destructuring qilishda asosiy yoddan chiqarmaslik kerak bo'lgan narsa bu biz kiritgan nom obj elementini key nomi bilan bir xil bo'lishi shart!Agarda sizga to'liq destructing qilish kerak bo'lmasa:
const {name, ...etcData} = {
// ...
}Bunday holatda ham shunchaki rest operatoridan foydalamiz.
Ammo siz o'jarlik qilib yo'q men key nomi bilan bir xil nom qilishni xohlamayman desangiz unda shunchaki shu usuldan foydalaning:
const {name: ism, ...etcData} = {
name: "Azizbek",
age: 20,
job: "Developer"
}
console.log(ism, etcData)Buni shunchaki shu usuldan bilan qilsangiz bo'ladi)
@azizify


