|
|
|
|
|
本文將給大家介紹如何在JS中解構(gòu)數(shù)組和對象,在文章開始之前,我們應(yīng)了解幾個關(guān)鍵概念:數(shù)組、對象、解構(gòu)。
◆ 數(shù)組
數(shù)組是可以存儲多個數(shù)據(jù)或單個數(shù)據(jù)類型的多個元素的數(shù)據(jù)集合。這意味著你可以創(chuàng)建包含字符串、布爾值、數(shù)字、對象甚至其他數(shù)組類型的元素的數(shù)組。
// 1
const arr = ["Element1", "Element2", "Element3"]
// 2
const arr = new Array(3)
arr[0] = "Element1"
arr[1] = "Element2"
arr[2] = "Element3"
在方法 1 中,你可以在聲明數(shù)組時進(jìn)行初始化。
在方法 2 中,你使用在初始化之前要存儲的元素?cái)?shù)來聲明你的數(shù)組。
◆ 對象
對象是屬性的集合,而屬性是名稱(或鍵)與值之間的關(guān)聯(lián)。
用 JavaScript 編寫對象在某種程度上類似于數(shù)組,但我們使用花括號來創(chuàng)建它們。
const details = {
name: "John",
id: 121,
year: 2022,
}
◆ 解構(gòu)
解構(gòu)是對數(shù)組或?qū)ο笾械脑剡M(jìn)行解包的行為。
解構(gòu)不僅使我們能夠解包元素,它還使你能夠根據(jù)要執(zhí)行的操作類型來操縱和切換解包的元素。
現(xiàn)在讓我們看看解構(gòu)在數(shù)組和對象中是如何工作的。
數(shù)組中的解構(gòu)
為了解構(gòu)數(shù)組,我們使用方括號 []
來存儲變量名,該變量名將分配給存儲元素的數(shù)組的名稱。
假設(shè)我們有一個包含 7 種顏色的數(shù)組,但我們只想獲取數(shù)組中的前 2 種顏色。我們可以解構(gòu)以獲得我們想要的東西。現(xiàn)在讓我們來看看它:
const colorArr = ["violet", "indico", "blue", "green", "yellow", "orange", "red"]
const [first, second] = colorArr;
console.log(first, second);
//violet, indico
數(shù)組中的變異
變異意味著改變元素的形式或值。如果值可以更改,則稱該值是可變的。借助數(shù)組中的析構(gòu),我們可以改變變量。如果我們有一個包含兩個元素“el1”和“el2”的數(shù)組,我們可以通過改變它們的變量來切換它們的位置。
const edibles = ["el1", "el2"];
let [pos1, pos2] = elements;
[pos1, pos2] = [pos2, pos1]
console.log(pos1, pos2);
// el2, el1
對象中的解構(gòu)
解構(gòu)對象時,我們使用大括號{}
,其中包含對象中的確切名稱。與我們可以使用任何變量名來解包元素的數(shù)組不同,對象只允許使用存儲數(shù)據(jù)的名稱。有趣的是,我們可以操縱變量名并將變量名分配給我們想要從對象中獲取的數(shù)據(jù)?,F(xiàn)在讓我們在代碼中看到所有這些。
const details = {
name: "Likhit",
id: 121,
emp_code: "18LK001"
}
const {name, id} = details
console.log(name, id);
// Likhit, 121
將我們擁有的內(nèi)容記錄到控制臺會顯示前端和后端的值?,F(xiàn)在讓我們看看如何為要解包的對象分配一個變量名。
const details = {
frontend: "React",
backend: "Node",
database: "MongoDB"
}
const {frontend: c1, backend: c2} = details
console.log(c1, c2);
// react, node
如上所見,我們有 c1
和 c2
作為我們要解包的數(shù)據(jù)的名稱。分配變量名將始終幫助我們保持代碼整潔,尤其是在處理外部數(shù)據(jù)時。
嵌套的對象解構(gòu)
title: 'Scratchpad',
translations:
{
locale: 'de',
localization_tags: [],
last_edit: '2014-04-14T08:43:37',
url: '/de/docs/Tools/Scratchpad',
title: 'JavaScript-Umgebung'
},
url: '/en-US/docs/Tools/Scratchpad'
};
let {
title: englishTitle, // rename
translations:
{
title: localeTitle, // rename
},
} = metadata;
console.log(englishTitle); // "Scratchpad"
console.log(localeTitle); // "JavaScript-Umgebung"
在項(xiàng)目中可能遇到的更多的是這種結(jié)構(gòu)復(fù)雜的對象,我們只要把變量父級的名字等照抄就可以使用。
總結(jié)
本文通過5個示例,介紹了如何在JS中解構(gòu)數(shù)組和對象。通過本文的學(xué)習(xí),我們應(yīng)該了解了什么是解構(gòu),以及如何去解構(gòu)數(shù)組和對象。
相關(guān)文章