JavaScript 陣列和物件就像書和報紙一樣

發表於2017-05-26

簡評:作者將 JavaScript 的陣列和物件比喻為書和報紙,陣列更注重順序,而標籤則對物件更重要。

如果你讀書、看報,那麼你會理解 JavaScript 的陣列和物件之間的不同之處。

當你剛開始學 JavaScript 時,用哪一種方式組織和儲存資料更好往往會讓人困惑。

一方面,你可能在學習 “for” 迴圈的時候熟悉了陣列。但是,一旦你儘可能多地將資料塞進陣列,當你在檢查你的程式碼的時候,你創造的亂七八糟的東西將會讓你難以理解。

當你可以快速地決定每個結構的目標時,在物件和陣列之間選擇會簡單得多。陣列和書籍儲存資訊的方式相差無幾,而物件則和報紙儲存資訊的方式差不多。

讓我們來看看!

陣列:資料的順序是最重要的

這是超短篇小說的章節,以陣列的形式。

好吧,我承認,這是《哈利波特》系列的第一本的前三章。這是陣列的視覺化的形式:

JavaScript 陣列和物件就像書和報紙一樣當順序成為組織資訊的最重要的因素時你應該使用陣列。沒有人(我希望)這樣看《哈利波特》的章節標題,“嗯…,那章看起來很有趣,讓我跳到那!”章節的順序告訴你下一章是什麼。

當你從陣列中檢索資訊時,你使用每個元素的下標。陣列是從零開始索引的,這意味著從 0 開始計數而不是 1。

如果你想要訪問下標為 0 的書籍陣列,你要用:

然後你會得到:

如果你想得到這本書第三章的章節標題,你要用:

你會基於書的章節順序來讀下一章,而不是基於書的章節標題。

物件:資料標籤是最重要的

報紙可能看起來是這樣的,以物件的形式。

下面是以視覺化的形式來看同樣的資料。

JavaScript 陣列和物件就像書和報紙一樣當你要基於資料標籤來組織資料時,物件是最好的。當你看報紙時,你可能不會從前往後一頁頁地讀。你會基於新聞標題來跳過特定的部分。無論在報紙的哪個地方,你都可以快速的跳過並且有合適的上下文。這和書不一樣,書的章節順序很重要。

物件通過鍵/值對來組織資料。看起來像這樣:

如果你想要進入報紙的商業部分,你會使用這樣的

或者:

這回返回‘GE Stock Dips Again’。所以,通過資料的標籤(鍵)來訪問資料是最簡單的,你想要把資料存在物件裡。

結合物件和陣列

目前為止,我們只是在陣列和物件中儲存了 strings,你也可以儲存其他型別的資料,比如 numbers 和 booleans,同時:

  1. 物件內的陣列
  2. 陣列中的物件
  3. 陣列中的陣列
  4. 物件中的物件

現在開始變複雜了。但是,你幾乎只需要兩種以擴充套件方式的組合來儲存你的資料。當你一星期後回顧程式碼也想要理解。

讓我們再看下書的例子。如果我們想要儲存每章的頁數會怎樣呢?用物件來填滿我們的陣列可能是最好的。像這樣:

我們維護了每章的順序,現在我們可以叫出每章的特定的屬性。所以,如果我們想要知道第二張的頁數,我們可以用:

這會返回一個 18 的

現在假設你想知道你當地報紙每個欄目的頂級作者的排名,基於他們的資歷。你可以在報紙物件中用一個陣列來表達,像這樣:

一個陣列用來儲存作者很合適,因為順序很重要。你知道每個陣列中靠前的作者排名更高。下標為 0 的作者是排名最高的。

你可以通過建立物件來優化報紙物件。比如,一個包含標題和作者列表的體育物件。但我會讓你來嘗試!

相關文章